1

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

4

2 回答 2

2

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

WWW 表单 URL 编码进一步指定传输为 的字段,NAME=CONTENT其中名称和内容是百分比编码的,并且不同的字段由 & 分隔。

于 2013-03-06T21:46:11.967 回答
1

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

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

于 2013-03-06T21:52:15.820 回答