对于XMLHttpRequest来说,这里有些困惑:
发布于 2013-01-04 05:42:46
为什么在xmlhttprequest中使用post方法时必须设置内容类型?
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");当您在AJAX上执行HTTP/POST时(或者通过其他方法),HTTP/POST并不要求提供特定的内容类型。这取决于您(以及服务器端程序处理它)。阅读第二节,了解为什么我们必须显式设置它。
我们经常序列化表单(百分位数-编码它-- a=b&c=d格式)并将其发送到服务器。这种格式是application/x-www-form-urlencoded格式。如果要发送XML,则使用application/xml,对于JSON则使用application/json等等。
至于GET请求,没有实体,因此我们实际上不需要内容类型的标题。
默认值应用程序/x-www-form-urlencoded不是已经被编码了吗?
我试着在这里中浏览默认的内容类型标头。我什么也找不到。但是,当我尝试通过chrome的控制台执行HTTP/POST AJAX请求时,我注意到chrome的缺省值是application/xml。
只是一条建议--永远不要依赖默认行为,除非它明确声明和/或是标准的一部分。为什么不显式地设置内容类型?
发布于 2018-10-05 08:05:24
这里还有一个帮助您通过application/x form-urlencoded传递参数的工具。https://www.browserling.com/tools/url-encode。另外,我建议您先使用Postman工具检查API响应,然后在JS中使用Ajax调用。
https://stackoverflow.com/questions/14151433
复制相似问题