, чтобы обойти это, попробуйте установить тип ocntent в запросе 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 также может помочь в вашем случае. Я обнаружил, что в зависимости от того, как вы отправляете данные, они могут быть закодированы совсем по-другому. Если вы хотите отправить длинные данные с помощью charset, сначала убедитесь, что они закодированы:
т. 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» и преобразовываю его в объект.
Надеюсь, это поможет