【发布时间】:2016-01-10 00:38:56
【问题描述】:
我正在将我的项目从 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'}
});
};
迁移到 1.4 后会报错:
POST http://localhost/ 405(不允许)XHR 加载失败:POST
(之前工作正常)
在这种情况下,这段代码会给出想要的结果。 如果我将调试器放在 chrome 浏览器中并按 f10 运行整个代码。
【问题讨论】:
-
什么是
Security,为什么不注入?此外,这个函数Security.reqKey()看起来是异步的,这就是为什么在没有调试器的情况下执行代码时它不及时,而在调试时它是准时的 - 这只是几毫秒的问题。 -
安全不过是一个客户端工厂,其值基于 Date.now().valueOf();我不认为这会造成问题。因为我已经尝试了没有参数参数的这段代码。但它产生了同样的错误。 :(
-
所以这可能是一个问题,你没有传递参数。无论如何,您的错误是服务器端类型的。你必须先看看问题的根源是什么(尽管我很确定这是因为你没有这个 rid 参数)。如果不发布所有相关功能包括服务器端的东西,您将无法在此处获得解决方案。
-
-
你有没有在你的服务器上改变过什么?
标签: javascript jquery angularjs http