2017-06-29 45 views
0

我得到一個405錯誤使得從本地主機的請求,這是完全錯誤:405方法

OPTIONS http://www.myurl.com 405 (Method Not Allowed)

XMLHttpRequest cannot load http://www.myurl.com . Response for preflight has invalid HTTP status code 405

我理解的問題,但怪癖是,我得到這個錯誤只是當我使用的角度$ http服務:

var req = { 
    method: 'POST', 
    url: 'http://www.myurl.com', 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    data: { 
    } 
} 

$http(req) 
    .then(function(res) {}, 
     function(error) {}); 

使用XMLHttpRequest的完美的作品:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     console.log(xhttp.responseText); 
    } 
}; 
xhttp.open("POST", 'http://www.myurl.com', true); 
xhttp.send(); 

我有一個chrome擴展來添加CORS頭文件並且它正在工作。我還注意到,如果我刪除了xhttp.open中的第三個參數,那麼錯誤再次出現。

¿有誰知道原因? ¿如何在不出錯的情況下使用角度服務?

回答

0

你可以這樣寫。因爲你沒有給url發送任何參數。所以我認爲這是做這件事的好方法。只是嘗試它可能適合你。

$http.post('http://www.myurl.com'). 
success(function(data) { 
    //success Response here 
}); 
0

您需要在服務器端允許OPTIONS方法。在每個GET,POST,PUT,DELETE ...請求之前,啓動一個OPTIONS請求。

我建議你禁用你的「chrome擴展來添加CORS」,以使你的最終用戶具有相同的配置。