,嘗試設置ocntenttype在Ajax請求:
...
jQuery.ajax({
type: "POST",
url: "../ajax/setting",
cache: false,
dataType: "json",
data: "user.id=current&update=true&user.setting=" + key + "&user.settingValue=" + escape(value),
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
beforeSend: function(x) {
if((x) && (x.overrideMimeType))
x.overrideMimeType("application/j-son; charset=UTF-8");
},
...
beforeSend技巧也可能有助於你的情況。我發現,根據你發送數據的方式,它可能被編碼得非常不同。如果您想提交帶有字符集的長數據,請確保先編碼它:
即。 submitdata是一個json字符串:
submitType = "POST";
submitdata = "data=" + encodeURIComponent(submitdata);
jQuery.ajax({
type: submitType,
url: url,
cache: false,
data: submitdata,
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
beforeSend: function(x) {
if((x) && (x.overrideMimeType))
x.overrideMimeType("application/j-son; charset=UTF-8");
return true;
},
在服務器上我將請求參數「data」並將其轉換爲對象。
希望這有助於
感謝尼克,你貼在我的當前設置沒有工作的答案,但它向我指出什麼導致損壞的數據...因爲我發送我的數據到另一個頁面我.serialize使用(),當我發送之前檢查數據,我發現它已經改變了...所以我想如果我使用decodeURIComponent()之前發送我可能有正確的數據...它的作品。謝謝! – Aries 2011-01-20 03:48:54