javascript - serialize - AngularJS token inesperado en fromJson()



angularjs merge (2)

No parece que $cookieStore esté destinado a leer cookies que no fueron creadas por $cookieStore . De los comentarios:

* @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.

La parte automatically serialized or deserialized es la parte importante. Pude reproducir su problema aquí: http://jsfiddle.net/xtmrC/

Probablemente quiera usar $cookies lugar, así: http://jsfiddle.net/MXTY4/9/

angular.module('myApp', ['ngCookies']);
function CookieCtrl($scope, $cookies) {
    console.log('haha', $cookies.PHPSESSID);
}

https://ffff65535.com

La siguiente línea de código:

var sid = $cookieStore.get('PHPSESSID');

está lanzando este error:

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) 

Entonces, puse un punto de interrupción en angular.js en la línea 779. El código allí es:

777    function fromJson(json) {
778        return isString(json)
779            ? JSON.parse(json)
780            : json;
781    }

El valor de json tal como se pasa a JSON.parse() es "mnp801fap6kor50trgv4cgk7m2".

También noté que otras cosas que pasan a ese método generalmente tienen dos comillas a su alrededor, como "" nombre de usuario "" por ejemplo.

Por favor ayuda. Me estoy golpeando la cabeza contra esto por un par de horas.

O, si alguien sabe una mejor manera de obtener el id de sesión php de las cookies utilizando Angular, también sería genial. (Sí, podría hacerlo usando jQuery o JS sin metal, pero preferiría seguir usando Angular).

¡¡¡Gracias por adelantado!!!


O simplemente puede envolver el $ cookieStorage en una función y devolver un valor o una cadena vacía.

var sid = getPHPSESSID();

function getPHPSESSID() {
   return $cookieStore.get('PHPSESSID') || '';
}

En ese caso, utilizará el servicio angular con sus ventajas y, si no coloca el par clave-valor en las cookies, obtendrá la cadena vacía en el resultado.





angularjs-service