从angularJS 1.3-beta迁移到1.4后,$ http帖子无效

Dur*_*RAO 5 javascript jquery http angularjs

我正在将我的项目从angularjs 1.3 beta迁移到1.4,'$ http get'工作正常,但'$ http post'正在创建问题.以下是用户身份验证代码,在1.3中工作正常,但在1.4中不工作

factory.authenticate = function (email, password) {
    var payload = {
        email: email,
        password: password
    };
    var rid = Security.reqKey();
    payload['rid'] = rid;
    return $http({
        method: 'POST',
        url: Base_url +'service/auth',
        param: {
            rid:  rid
        },
        data: $.param(payload),
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    });
};
Run Code Online (Sandbox Code Playgroud)

迁移到1.4后会产生错误:

POST http:// localhost / 405(不允许)XHR加载失败:POST

(之前工作正常)

存在这种代码给出期望结果的情况.如果我将调试器放在chrome浏览器中并按f10运行整个代码.

Fla*_*ape 0

根据文档

\n\n
\n

params \xe2\x80\x93 {Object.} \xe2\x80\x93 将使用 paramSerializer 序列化并附加为 GET\n 参数的字符串或对象的映射。

\n
\n\n

param应该是params这样,因此您的数据没有被序列化,这可以解释为什么服务器拒绝您的 POST (因为 post 可能需要比 GET 更多的权限)。

\n\n

但即使这可能是不正确的,因为我认为params仅适用于 GET (但也许它适用于两者)。

\n\n

您也不需要 jquery $.param()$http 有一个内置的序列化器。data只需设置为payload.

\n