2016-01-23 46 views
0

這是我的請求頭期權淨:: ERR_EMPTY_RESPONSE AngularJs郵政呼叫

Request URL:http://demo7876167.mockable.io/auth/login 
Request Headers 
Provisional headers are shown 
Access-Control-Request-Headers:accept, content-type 
Access-Control-Request-Method:POST 
Origin:http://localhost:8000 
Referer:http://localhost:8000/ 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 
X-DevTools-Emulate-Network-Conditions-Client-Id:CACC0804-7333-424B-985E-DBA8164A45E1 

這是來自於控制檯

OPTIONS http://demo7876167.mockable.io/auth/login net::ERR_EMPTY_RESPONSE 

當我試圖通過郵遞員訪問同一個網址確切的錯誤它似乎工作。 每當我嘗試訪問不同的服務器時都會發生這種情況。

有沒有使angularJs電話,這樣我可以POST請求與CORS任何服務器上的任何特定的方式啓用

+0

「當我嘗試通過郵遞員訪問相同的URL時,它似乎工作。」 - 你是否真的在郵遞員那裏提出這個OPTIONS請求? – Quentin

+0

@Quentin對不起,我的意思是我正在通過郵遞員 –

回答

2

瀏覽器是使你期望它使POST請求之前作出preflight OPTIONS request。 (推測這是您使用Postman測試的POST請求)。

如果您未製作simple request,則需要預檢請求。默認情況下,Angular會將POST請求中的數據編碼爲JSON(而不是更常見的URL表單編碼)。對於簡單的請求,JSON不是可接受的內容類型之一。

您提出請求的服務器必須響應OPTIONS請求,告訴瀏覽器允許您的JavaScript製作您正在嘗試編寫的JSON編碼POST請求。

瀏覽器收到權限後,它會發出您用Postman模擬的POST請求。

或者,make a form encoded POST而不是JSON編碼的一個。