2013-10-14 54 views
1

我發送Ajax與beforeSend頭選項(添加授權令牌),其運行正常通話,但我可以看到在控制檯2名所列的請求......jQuery Ajax調用,爲什麼在網絡活動中列出兩個請求?

$.ajax('https://macMini.local:8000/Products', { 
      type: "GET", 
     cache: false, 
     async: false, 
     dataType: "json", 
     beforeSend: function (xhr, settings){ 
      xhr.setRequestHeader('Authorization', 'Bearer ' + amplify.store("tokens").access_token); 
      } 
    })... 

,並在開發瀏覽器控制檯,我見:

Request URL:https://macmini.local:8000/Products?_=1381768498131 
Request Method:OPTIONS 
Status Code:204 No Content 
... 

沒有響應 和

Request URL:https://macmini.local:8000/Products?_=1381768498131 
Request Method:GET 
Status Code:200 OK 
... 

與JSON響應

+0

'async:false' === FAIL! – Alnitak

回答

2

是從另一個域或端口做出的ajax請求?在這種情況下,它是一個Cross-site HTTP request,瀏覽器將首先發送一個OPTIONS請求來檢查GET請求是否安全發送。

通常一個GET請求將不會發送OPTIONS第一,但在這種情況下,「preflight」請求可能作出,因爲你設置額外的頭。

+0

就是這樣,我在開發模式下運行客戶端和服務器(node.js w CORS)...感謝澄清這... – erwin

相關問題