Ionic / AngularJS通过http.get传递ID

时间:2017-01-13 14:38:01

标签: javascript angularjs ionic-framework

我无法将session_id传递给我的http.get函数,任何想法我做错了什么?

继承人我的控制人员:

.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;
        });
    }
    
})

3 个答案:

答案 0 :(得分:0)

我在代码中看到的错误:

您应该注入sessionStorage服务。 删除网址末尾的+

检查示例:Link

答案 1 :(得分:0)

我不知道问题是什么,除非你解释' https://m.socialnetwk.com/home/app/'端点工作,它产生了什么错误,但我怀疑你说你需要通过session_id而不是获取它,你需要使用$ http.post而不是$ http.get

答案 2 :(得分:0)

我已经在Postman中测试了你的http请求,它正常工作。

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 +)。then(function(rest){               $ scope.records = rest.data;           });

为:

  

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

并删除网址末尾的+。

  

$ http.get('https://m.socialnetwk.com/home/app/feed_load.php?id='+ $ scope.session_id).then(function(rest){               $ scope.records = rest.data;           });

正如杰克告诉你的那样。

抱歉我的英文。