2015-03-19 4 views
0

Использование AngularJS, я понимаю, как получить данные JSON с использованием запроса AJAX. Это делается следующим образом:AngularJS: Доступ к данным json, хранящимся в jQuery cookie

$http.get('data/parks.json').success(function(data){ 
     $scope.parks = data; 
    }); 

Однако, я в настоящее время, хранящую информацию в формате JSON в JQuery Cookie, как противостоять в документе на сервере, который мне нужно, чтобы получить доступ с помощью запроса AJAX.

Данные хранятся в куки, используя следующий код:

// Add the selected park to the users favourite list 
$scope.addFavourite=function(id){ 

    // If user has cookie named userFavourites 
    if(typeof $.cookie("userFavourites") != "undefined"){ 

     // Turn the cookie data into readable JSON 
     var favourites = $.parseJSON($.cookie("userFavourites")); 

     // Filter through the the results of the JSON object and check to see if the result is equal to the selected parks ID 
     var repeated = favourites.filter(function(a){ 
      return a.id == id 
     }).length; 

     // If park is not in the list, add it to the list 
     if(!repeated){ 
      favourites.push({"id":id}); 
      if($.cookie("userFavourites", JSON.stringify(favourites))){ 
       alertify.success("Successfully added park to favourites"); 
      } 
      else alertify.eror("Failed to store park in cookie"); 
     } 

     // Inform the user that the park is already a favourite 
     else alertify.error("Oops... This park is already in your favourites list!"); 

    } 
    else{ 
     var favourites = [{ "id":id }];   
     $.cookie("userFavourites", JSON.stringify(favourites)); 
     alertify.success("Successfully added park to favourites"); 
    } 
} 

информация добавляет к куки просто отлично, и как только я добавил некоторые парки в куки, когда я console.log это я :

[{"id":1},{"id":2}] 

Моя проблема, когда я хочу, чтобы извлечь данные с помощью AJAX в пределах AngularJS, я не уверен, как получить данные в формате JSON от печенья, как противостоять из файла в пределах структуры папок.

Я попытался следующие, но это только возвращает ошибку в консоли:

$scope.listFavourites=function(){ 

    if(typeof $.cookie("userFavourites") != "undefined"){ 

     $http.get($.cookie("userFavourites")).success(function(data){ 

      $scope.favourites = data; 
      $scope.totalFavourites = data.length; 

     }); 

    } 
    else{ 
     $scope.favourites = "Empty"; 
    } 

    console.log($scope.favourites); 

} 

Ошибка:

GET http://www.example.com/angularjs/[%7B%22id%22:1%7D,%7B%22id%22:2%7D] 404 (Not Found) 

Я также попытался изменить $ http.get до $ HTTP. jsonp, следуя этой документации (https://docs.angularjs.org/api/ng/service/ $ http # jsonp), но мне не повезло.

Любая помощь приветствуется :)

+0

печенья и его содержание сохраняются на локальном компьютере, GET, POST или успех (не имеет смысла здесь; '$ .cookie («userFavourites»)' это все, что вам нужно нужно/уход о – birdspider

ответ

1

Cookie является локальный элемент в браузере, а не на сервере, так что вы не забираете его с помощью Ajax, вместо этого вы можете просто напечатать его значение в JavaScript

console.log($cookies.get('myFavoriteCookie')); 

больше деталей here

+0

Конечно, это так, почему я не nk этого. Классический случай блока разума в минуту! Спасибо за ввод. Я бы поднял ваш ответ, но не получил достаточно очков: / – DannyDanDan

Смежные вопросы