2016-03-01 124 views
1

enter image description here我已閱讀關於此角度問題的所有問題,但Angular $ http發送的是OPTIONS而不是PUT。 (帶後一切正常),我們的項目是在谷歌應用程序引擎(蟒蛇)

$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: {} 
    }); 
}; 

約將appreaciated解決任何意見。

+2

與角度完全沒有關係。這是瀏覽器發送OPTIONS作爲跨域請求的CORS規範的一部分。您需要在服務器上啓用CORS。請查看瀏覽器控制檯中的錯誤,並查看該錯誤。問題每天都會在這裏出現很多次,並且在服務器上啓用了CORS – charlietfl

+0

CORS上有很多可用的文檔。關於POST沒有任何問題。 – TheNone

+0

然後它沒有正確啓用。複製來自瀏覽器開發工具網絡的請求中的響應標題併發布問題 – charlietfl

回答

2

發送請求與OPTIONS方法是瀏覽器在使用CORS時的正確行爲。

瞭解更多關於CORS這裏:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

本文解釋了爲什麼它需要做這種方式。更specificaly部分標題爲「預檢請求」:

不同於簡單的請求(上面討論的),「預檢」請求第一發送由OPTIONS方法的HTTP請求發送到在另一域中的資源,以確定是否實際要求可以安全發送

+0

爲什麼您從問題中刪除python標籤?如果OP在服務器上確實使用了與情況相關的python – charlietfl

+1

問題並不是要求關於Python的任何內容,OP是否使用GAE是否是irellevant,他是在問他的Angular代碼有什麼問題。如何爲CORS設置GAE與Angular無關,並且是另一個問題的主題。 – martin

+0

但CORS是一個服務器端問題。同意問題需要重新工作,但你的回答沒有澄清, – charlietfl