次のコード行:
_var sid = $cookieStore.get('PHPSESSID');
_
このエラーをスローしています:
_SyntaxError: Unexpected token m
at Object.parse (native)
at Object.fromJson (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:779:14)
at Object.angular.module.factory.factory.get (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-cookies.js:149:34)
at Object.getAllImages (https://7-september.com/photoslide/js/services.js:29:36)
at new Management (https://7-september.com/photoslide/js/controllers.js:54:18)
at invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:2902:28)
at Object.instantiate (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:2914:23)
at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:4805:24)
at update (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:14198:26)
at Object.$get.Scope.$broadcast (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8307:28)
_
そこで、779行目のangular.jsにブレークポイントを設定しました。コードは次のとおりです。
_777 function fromJson(json) {
778 return isString(json)
779 ? JSON.parse(json)
780 : json;
781 }
_
JSON.parse()
に渡されるjson
の値は、「mnp801fap6kor50trgv4cgk7m2」です。
また、そのメソッドに渡される他のものには、通常、たとえば「userName」のように、2つの引用符が含まれていることに気付きました。
助けてください。私はこれに数時間頭をぶつけています。
または、Angularを使用してCookieからphpセッションIDを取得するためのより良い方法を誰かが知っている場合は、それも素晴らしいことです。 (はい、jQueryまたはベアメタルJSを使用してそれを行うことができますが、Angularを引き続き使用したいと思います)。
前もって感謝します!!!
$cookieStore
が$cookieStore
によって作成されていないCookieを読み取ることを意図しているようには見えません。コメントから:
* @description
* Provides a key-value (string-object) storage, that is backed by session cookies.
* Objects put or retrieved from this storage are automatically serialized or
* deserialized by angular's toJson/fromJson.
automatically serialized or deserialized
は重要な部分です。私はここであなたの問題を再現することができました: http://jsfiddle.net/xtmrC/
代わりに$cookies
を使用することをお勧めします:http://jsfiddle.net/MXTY4/9/
angular.module('myApp', ['ngCookies']);
function CookieCtrl($scope, $cookies) {
console.log('haha', $cookies.PHPSESSID);
}
または、$ cookieStorageを関数でラップして、値または空の文字列を返すこともできます。
var sid = getPHPSESSID();
function getPHPSESSID() {
return $cookieStore.get('PHPSESSID') || '';
}
その場合、長所でangularサービスを使用し、Cookieにキーと値のペアを入れないと、結果として空の文字列が取得されます。