$ http.post vs $ .getJSON响应?

时间:2016-10-25 03:54:39

标签: jquery angularjs post

从角度应用程序中,当我使用jQuery发送帖子请求时,如下所示,......

this.login = function (email, password) {
    return $.getJSON(FOO_URL, {
        email: email,
        password: password
    });
}

......我的回答非常好。

Object {result: "ok", key_one: result_one, key_two: result_two, ...}

但是,当我尝试使用角度$http执行相同的操作时,如下所示,...

this.login = function (email, password) {
    return $http.post(FOO_URL, {
        email: email,
        password: password
    });
}

...我的回复数据完全是空的。

Object {data: "", status: 200, config: Object, statusText: "OK"}

为什么我的回复数据为空{angular $http

2 个答案:

答案 0 :(得分:0)

jQuery的$.getJSON发出POST个请求。它只能GET

要使其完全相同,您需要将数据作为params ...

传递
$http.get(FOO_URL, {
    params: {
        email: email,
        password: password
    }
})

请参阅https://docs.angularjs.org/api/ng/service/$http#usage

要发送格式为application/x-www-form-urlencoded的数据的POST请求,如果您使用的是PHP的$_REQUEST(或$_POST),则需要执行此操作,请参阅此答案〜{{ 3}}

简短回答,注入$http$httpParamSerializer并使用

$http({
    method: 'POST',
    url: FOO_URL,
    data: $httpParamSerializer({email: email, password: password}),
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})

答案 1 :(得分:0)

这是两个不同的http请求。一个是getJSON是一个GET方法,而$ http.post是一个POST方法。

tableView:cellForRowAtIndexPath: