【发布时间】:2009-10-30 04:53:45
【问题描述】:
我尝试使用 jQuery 的 AJAX 函数覆盖 HTTP 请求标头内容。看起来是这样的
$.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 标头默认为“application/x-www-form-urlencoded; charset=UTF-8”,但显然无论我使用“contentType”还是“beforeSend”方法,我都无法覆盖它的值. 谁能给我一个提示,我该如何或可以更改 HTTP 请求的内容类型值? 非常感谢。
顺便说一句,有什么好的文档可以研究 JavaScript 的 XMLHttpRequest 的编码处理吗?
【问题讨论】:
-
见stackoverflow.com/questions/1145588/…,这是一个重复的问题。
-
@Jim:不是真的;另一个 Q 是关于 Accept 标头,而不是关于设置内容类型。
-
来自 jQuery ajax 文档:数据将始终使用 UTF-8 字符集传输到服务器;您必须在服务器端对此进行适当解码。 api.jquery.com/jQuery.ajax
标签: javascript jquery ajax encoding