Angular $ http发送OPTIONS而不是PUT(不是POST)

时间:2016-03-01 14:58:36

标签: python angularjs http-headers cors put

enter image description here我已经阅读了有关此角度问题的所有问题,但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: {}
    });
};

有关解决方案的任何建议都会被证实。

1 个答案:

答案 0 :(得分:2)

使用CORS时,浏览器使用OPTIONS方法发送请求是正确的行为。

在此处阅读有关CORS的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

本文解释了为什么需要这样做。更具体的标题为“预检请求”的部分:

  

与简单请求(如上所述)不同,“预检”请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否可以安全发送