setRequestHeader有什么作用?

时间:2013-03-06 21:41:22

标签: javascript xmlhttprequest

我使用ajax将文本发送到我的服务器。如果我删除下面的行就会中断。

xhr = new window.XMLHttpRequest();
xhr.open("POST", config.url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  // removal causes error

我注意到我的get请求不需要请求标头。事实上,这是我用过的唯一一个requestHeader。

x-www-form-urlencoded究竟是什么?为什么需要?

如何/它与encodeURIComponent有关,我发现我还必须运行发送到服务器的文本?

2 个答案:

答案 0 :(得分:2)

它确实与encodeURIComponent(str)有关,因为encodeURIComponent根据编码百分比编码表单组件:http://en.wikipedia.org/wiki/Percent-encoding

WWW form URL encoding进一步指定以NAME=CONTENT传输的字段,其中名称和内容为百分比编码,并且不同的字段由&符号(&)分隔。

答案 1 :(得分:1)

此标头定义了POST变量的正确编码。

请参阅:http://en.wikipedia.org/wiki/POST_(HTTP)#Use_for_submitting_web_forms