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运行整个代码.
根据文档,
\n\n\n\n\nparams \xe2\x80\x93 {Object.} \xe2\x80\x93 将使用 paramSerializer 序列化并附加为 GET\n 参数的字符串或对象的映射。
\n
param应该是params这样,因此您的数据没有被序列化,这可以解释为什么服务器拒绝您的 POST (因为 post 可能需要比 GET 更多的权限)。
但即使这可能是不正确的,因为我认为params仅适用于 GET (但也许它适用于两者)。
您也不需要 jquery $.param()$http 有一个内置的序列化器。data只需设置为payload.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |