有人可以告诉我为什么以下声明不会将发布数据发送到指定的 URL
吗?
login: function (username, password) {
var deferred = $q.defer();
var url = Config.serverUrl() + "/api-token-auth/";
var data = {
'username': username,
'password': password
};
$http.post(url, data).then(function (responseData) {
console.log(responseData);
alert(url);
alert(JSON.stringify(data));
$localForage.setItem('shopper-user', responseData.data).then(function (user) {
var token = "JWT " + user.token;
$rootScope.token = token;
$http.defaults.headers.common.Authorization = $rootScope.token;
deferred.resolve(user);
});
}, function (error) {
alert(url);
alert(JSON.stringify(data));
console.error(error);
alert(JSON.stringify(error));
deferred.reject(error);
});
return deferred.promise;
}
在服务器上调用URL,但只转到错误状态
{"data":null, "status":-1,"config":{"method":"POST"}}
答案 0 :(得分:1)
客户端代码似乎没问题。
这可能是一个CORS问题。快乐确保服务器端代码响应200 OPTIONS请求(在POST请求之前由Angular发出)并且响应头被正确设置。
您可以找到有关如何配置CORS here
的更多信息