我已经阅读了有关此角度问题的所有问题,但Angular $ http正在发送OPTIONS而不是PUT。 (使用POST一切正常)我们的项目是谷歌应用引擎(python)
我有
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
在配置和
中$scope.updateUser = function () {
/*$http.put(myurl, {
admin: "on"
}).success(function (result) {
console.log(result);
$scope.resultPost = result;
}).error(function (result) {
console.log(result);
});*/
var uri = my url;
$http({
method: 'PUT',
url: uri,
headers: {"Content-Type": "application/json;charset=UTF-8"},
data: {}
});
};
有关解决方案的任何建议都会被证实。
答案 0 :(得分:2)
使用CORS时,浏览器使用OPTIONS
方法发送请求是正确的行为。
在此处阅读有关CORS的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
本文解释了为什么需要这样做。更具体的标题为“预检请求”的部分:
与简单请求(如上所述)不同,“预检”请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否可以安全发送