2012-11-29 41 views
0

我使用的第三方服務非常特別。我試圖設置接受標頭爲jquery 1.4.4完全發送接受標題爲'application/json'

Accept: application/json 

但jquery 1.4.4不會發送那個。它不斷髮送的變化,即:

Accept: */*, application/json 

我已經嘗試了一些變化,即下一個。我怎麼才能讓它在accept頭中發送'Accept:application/json'?

jQuery.ajax({ 
    url: "/rest/cms.country", 
    beforeSend: function (xhr) { xhr.setRequestHeader('Accept', 'application/json'); }, 
    contentType: "application/json; charset=utf-8", 
    type: 'get', 
    success: function() { 
     console.log('success'); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     console.log('error' + errorThrown); 
    } 
}); 
+0

你有沒有試過seting'dataType'參數? 'dataType:'json'' – Zefiryn

+0

@ Zefiryn設置數據類型參數不起作用 – Hoppe

回答

0

根據W3C規範,設置請求頭應該追加到任何現有的價值,所以它已經「*/*」,並要求追加「應用/ JSON的」你之前設置它。

此外,根據this該規範現在需要'*/*'作爲接受值,所以你的服務器違反規範(我不知道你的問題在這裏)。

你想要的是設置你之前清除出「*/*」的現有值的瀏覽器,所以也許叫:

setRequestHeader('Accept', '') 

您的AJAX請求之前?這將會依賴於瀏覽器,所以你可能會爲一些IE獲得樂趣。

+0

通過引用規範,我發現這不是我的問題的根本原因。謝謝!!! – Hoppe