2017-01-13 2 views
0

У меня возникли проблемы с передачей session_id через мою функцию http.get, любые идеи, что я делаю неправильно?Ионный/AngularJS, передающий ID через http.get

Heres мой контроллер:

.controller('feedCtrl', function($scope,$rootScope,$ionicHistory,$state,$http) { 
 

 
    $scope.session_id= sessionStorage.getItem('session_id'); 
 
    if($scope.session_id == null){ 
 
     $state.go('login'); 
 
    } 
 
    else { 
 
     $http.get('https://m.socialnetwk.com/home/app/feed_load.php?id='+ $scope.session_id +).then(function(rest) { 
 
      $scope.records = rest.data; 
 
     }); 
 
    } 
 
    
 
})

+0

Вы можете добавить более подробную информацию? например, как вы сначала сохраняете session_id? – Antoine

+0

Сессии хранятся в контроллере входа через '$ scope.user_details = response.records; sessionStorage.setItem ('session_id', $ scope.user_details.session_id); sessionStorage.setItem ('session_username', $ scope.user_details.session_username); sessionStorage.setItem ('session_email', $ scope.user_details.session_email); ' –

+0

Ошибка в консоли? – ozgur

ответ

0

Ошибки, которые я вижу в коде:

Вы должны сделать, чтобы внедрить sessionStorage службу. Удалить + в конце URL.

Проверка Пример: Link

+0

Не могли бы вы привести пример? Я новичок в Ionic и angularjs –

+0

Это работает, однако, на стороне сервера PHP. используя '$ _GET ['id']', не получая идентификатор. Я могу видеть в журнале, что на функции get контроллера, что идентификатор находится в URL-адресе –

0

Я Wouldnt точно знаю, что это проблема, если у не объясняет, как «https://m.socialnetwk.com/home/app/» оконечных работает и какая ошибка она производит, но мои подозрения в том, что, как вы говорите, что нужно пройти session_id и не GET, вам нужно использовать $ http.post вместо $ http.get

+0

Ааа справа, вот моя дилемма. Что происходит в/app/- Theres запрос, запрос должен получить идентификатор от url, например '3', и запрос выбирает данные с user_id 3, затем на контроллере. Он должен вернуть результат запроса данных –

0

Я протестировал ваш http-запрос в Postman, и он работает нормально.

https://m.socialnetwk.com/home/app/feed_load.php?id=4235 

и возвращает:

[ 
{ 
"firstname": "4235", 
"lastname": "Round", 
"profile_image": "jpg/55529055162cf0.jpg", 
"lastname": "Round", 
"iframe": "", 
"media_format": "img", 
"media_file_format": "jpg", 
"media_post_id": "5851875bda5b3", 
"media_author_id": "3", 
"mediatxt": "" 
}, 
{ 
"firstname": "4235", 
"lastname": "Round", 
"profile_image": "jpg/55529055162cf0.jpg", 
"lastname": "Round", 
"iframe": "", 
"media_format": "img", 
"media_file_format": "jpg", 
"media_post_id": "583c459a745a4", 
"media_author_id": "3", 
"mediatxt": "" 
}, 
{ 
"firstname": "4235", 
"lastname": "Round", 
"profile_image": "jpg/55529055162cf0.jpg", 
"lastname": "Round", 
"iframe": "", 
"media_format": "img", 
"media_file_format": "jpg", 
"media_post_id": "583c4597778c1", 
"media_author_id": "3", 
"mediatxt": "" 
}, 
{ 
} 
] 

так что ваша ошибка является:

$ scope.session_id = sessionStorage.getItem ('session_id');

если вы напечатаете $ scope.session, вы получите неопределенное. Таким образом, ваш запрос http возвращает пустой массив.

Давайте исправим это

Вводят sessionStorage. Предположим, вы используете ngStore, поэтому вам нужно ввести $ sessionStorage.

Пример:

.controller('feedCtrl', function($scope,$rootScope,$ionicHistory,$state,$http, $sessionStorage) 

Изменить код:

$ scope.session_id = sessionStorage.getItem ('session_id');

$ http.get ('https://m.socialnetwk.com/home/app/feed_load.php?id=' + $ scope.session_id +), затем (функция (остальное) { $ scope.records = rest.data; }).

к:

$ scope.session_id = $ sessionStorage.getItem ('session_id');

и удалите + в конце URL-адреса.

$ http.get ('https://m.socialnetwk.com/home/app/feed_load.php?id=' + $ scope.session_id) .then (функция (остальное) { $ scope.records = rest.data; });

Как сказал Джекк.

Извините за мой английский.