在$ http.post中使用params不起作用

时间:2016-06-09 22:47:04

标签: javascript angularjs

我想解构这个网址

此作品

$http.post('http://mysrc:8080/calc?country=Usa&city=NewYork', {
          {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' }
});   

使用params insted

这不起作用

  $http.post('http://mysrv:8080/calc?', {
                    params: { country: "Usa", city: "NewYork" },
                    headers: {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==', }
                });  

4 个答案:

答案 0 :(得分:0)

在帖子上使用url params很笨拙。传统上像你这样的数据存在于体内,通常是url编码的,但无论如何应该与表示编码的标题相匹配。

请参阅:HTTP POST with URL query parameters -- good idea or not?

答案 1 :(得分:0)

我认为你误解了$http.post是如何运作的。试试这个:

 $http({params: { country: "Usa", city: "NewYork" },
        headers: {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' }})
 $http.post('http://mysrv:8080/calc?');  

答案 2 :(得分:0)

这是docs的正确语法。

$http.post('/someUrl', data, config).then(successCallback, errorCallback);

所以对你的例子来说:

$http.post('/someUrl', null, {
                params: { country: "Usa", city: "NewYork" },
                headers: {'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' }
            });

但正如其他人所说 - 由于你没有向服务器发布任何数据,为什么要使用.post

答案 3 :(得分:0)

使用类似的东西。

$http({
    method: 'post', 
    url : "https://myserver.com/api/v1/name", 
    data : {
        fname : "Senthil",
        lname : "Kumar"
    }
    headers: {
        'Authorization': 'Basic token_hash'
    }
});