2016-11-08 54 views
0

我收到一個荒謬的錯誤,同時使用角度$ http與post方法。

在發送$ http POST請求時,它沒有附加Content-type標頭,並且由於此錯誤,我收到一條錯誤「預檢的響應具有無效的HTTP狀態碼404」。 這是我的代碼 -

var obj={ 
     "mobile":"hello", 
     "password":"asjd" 
    } 
$http({ 
    url: 'http://cbsatwork.com/laundry/api-authentication', 
    method: 'POST', 
    data:obj, 
    headers: { 
     "Content-Type": "application/json" 
    } 
    }) 

雖然如果我刪除了「數據顯示:目標文件」從代碼行,它的工作原理和我從服務器獲取通常的反應。 我已經看過很多答案,但無法爲我工作。

編輯: 我嘗試使用jQuery中的$ .ajax()方法,它工作得很好。沒有問題。所以我不認爲我的服務器有任何問題。

預檢
+0

您是否向WCF或WebApi後端發出此請求?如果是的話,我可以建議你添加啓用CORS的屬性,你的問題可能與CORS有關。 https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api – katmanco

+0

如果您在url之前傳遞該方法會怎麼樣? – Korte

+0

您要發送請求的域名是什麼? –

回答

1

響應具有無效的HTTP狀態碼404

此錯誤表示最有可能有一個CORS問題。瀏覽器發送兩個請求。第一個請求是OPTIONS,另一個是POST,你在你的例子中配置。問題不太可能與Content-Type標題相同,因爲此標題是使用POST而不是OPTIONS發送的。這是OPTIONS請求失敗。檢查您的服務器是否支持OPTIONS請求併發回正確的CORS所需標頭

+0

謝謝最大值,但我在我的響應標題中得到這個 - 訪問控制允許方法:GET,POST,PUT,OPTIONS,DELETE,HEAD。而且我甚至在瀏覽器中放了一個cors擴展,但它仍然不起作用。 –

+0

另外,同樣的情況發生時,我使用jQuery而不是$ http $ .jax。 function submit(){ \t \t \t var obj = {'mobile':'asd','password':'asdk'}; \t \t \t $阿賈克斯({ \t \t \t \t方法: 「POST」, \t \t \t \t網址:「HTTP://www.cbsatwork。COM /洗衣/ API認證」, \t \t \t \t數據:OBJ \t \t \t}); \t \t} 這工作完全正常 速滑運動員的肌肉兩項要求(1由$ HTTP和發出的另一個唯一的區別。通過$ .ajax是一個標題Content-Type) –

+0

好的,你能用小提琴來抓住兩個請求(OPTONS和POST)及其響應嗎? –