我使用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有关,我发现我还必须运行发送到服务器的文本?
答案 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