2009-10-30 81 views
8

我試圖通過使用jQuery的AJAX函數覆蓋HTTP請求標頭內容。它看起來像這樣我不能更改HTTP請求標題使用jQuery的內容類型值

$.ajax({ 
    type : "POST", 
    url : url, 
    data : data, 
    contentType: "application/x-www-form-urlencoded;charset=big5", 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("Accept-Charset","big5"); 
     xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=big5"); 
    }, 
    success: function(rs) { 
    target.html(rs); 
    } 
}); 

Content-Type頭默認爲「應用程序/ x-WWW窗體-urlencoded;字符集= UTF-8」,但它顯然我不能覆蓋它的價值,不管我用'contentType'或'beforeSend'方法。 任何人都可以給我提示,我該如何更改HTTP請求的內容類型值? 非常感謝。

btw,有什麼好的文檔可以研究JavaScript的XMLHttpRequest的編碼處理嗎?

+0

請參閱http://stackoverflow.com/questions/1145588/cannot-properly-set-the-accept-http-header-with-jquery,這是一個重複的問題。 – 2009-10-30 05:23:48

+0

@Jim:不是真的;其他Q關於Accept頭,而不是關於設置內容類型。 – 2011-05-07 22:37:11

+0

從jQuery ajax文檔: 數據將始終使用UTF-8字符集傳輸到服務器;你必須在服務器端正確解碼。 http://api.jquery.com/jQuery.ajax/ – Bkress 2011-05-20 20:50:23

回答

2

根據jQuery文檔,字符集將始終爲UTF-8:http://jqapi.com/#p=jQuery.ajax。我想接受字符集也是一樣。

Big5是UTF-8的子集,對吧?所以應該有可能對服務器端進行編碼和解碼。

+1

[挑剔]不,Big5不是UTF-8的子集,但它很可能是Unicode的一個子集。 – 2011-06-11 06:40:11

相關問題