我正在尝试使用“ charset = ISO-8859-1”将HTTP请求从客户端发送到服务器(ligghttpd 1.4.54)。但这似乎只适用于GET请求,而不适用于POST请求...
使用jQuery进行ajax调用,下面是我尝试更改字符集的代码:
if (method === 'get') {
$.ajax({
dataType: 'json',
url: send,
success: handleServerResponse,
error: handleAjaxError,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1"
});
} else { // if(method === "post")
$.ajax({
type: 'POST',
url: '/mib/post.json' + interActive,
contentType: "application/x-www-form-urlencoded; charset=ISO-8859-1",
data: send,
success: handleServerResponse,
error: handleAjaxError,
dataType: 'json',
cache: false
});
}
};
当我在Chrome(或Firefox)中检查“网络”标签并单击获取请求时,响应和请求标头都包含:
Content-Type: application/x-www-form-urlencoded;charset=ISO-8859-1
但是,如果我单击发布请求,则请求标头包含:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
据我所知,一切看起来都是正确的,直到在jQuery文件中调用xhr.send为止。但是,一旦请求显示在“网络”选项卡中,请求标头就具有错误的字符集。
一个非常奇怪的事情是,如果我在ajax调用中将“ application / x-www-form-urlencoded”更改为“ application / json”,标头中Content-Type的那部分将更改。但不是字符集...
有什么想法吗?