我无法使用jQuery更改HTTP请求标头Content-Type值

时间:2009-10-30 04:53:45

标签: javascript jquery ajax encoding

我尝试使用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的编码处理吗?

2 个答案:

答案 0 :(得分:2)

根据jQuery文档,charset将始终为UTF-8:http://jqapi.com/#p=jQuery.ajax。我猜对于accept-charset也是如此。

Big5是UTF-8的子集,对吧?因此应该可以对服务器端进行编码和解码。

答案 1 :(得分:0)

您检查过w3.org文档吗?使用Accept-Charset标头似乎有一些限制。 http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method