2015-09-18 58 views
1

我在CORS資源中調用jQuery ajax請求。後端在nginx上工作,並且在那裏設置了OPTIONS鉤子和響應,允許所有的域和所有的請求類型。但不幸的是我得到錯誤回調。在Chrome網絡控制檯上,我看到了204條關於OPTIONS請求的答案。我從來沒有見過我的原始POST請求。jQuery ajaxs CORS請求

var email = $('#your_email').val(); 
var sendData = { 
    issue: { 
     description: "email:" + email, 
     category_id: 1 
    } 
}; 

$.ajax({ 
    url: "https://domen/issues.json", 
    type: "POST", 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader("Authorization", "Basic " + btoa("goodtry:goodtryq")); 
     xhr.setRequestHeader("Accept", "application/json"); 
     xhr.setRequestHeader("Content-type", "application/json") 
    }, 
    data: JSON.stringify(sendData), 

    success: function (val) { 
     alert("Thanks you, we are going to contact you soon"); 
    }, 
    error: function (val) { 
     alert("Please check your internet connection"); 
    } 
}); 

enter image description here

enter image description here

+0

它顯示在響應頭沒有內容。你在後端代碼中處理過嗎? – Akki619

+0

只是一個快速檢查設置「數據類型」爲json – Akki619

+0

204狀態是我認爲的問題,嘗試返回200爲OPTIONS請求,並看看是否發送POST – charlietfl

回答

0

因此,就解決了。我錯過了診斷消息

Request header field Authorization is not allowed by Access-Control-Allow-Headers. 

所以有用的答案culd在這裏找到: https://stackoverflow.com/a/24556330/2835239

+0

如果有其他人遇到此問題,我發現很多瀏覽器在請求遇到任何問題時都會報告此消息,甚至與CORS無關。當我遇到這個頁面時,這是我的情況。 –