首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于内容类型的两个问题

关于内容类型的两个问题
EN

Stack Overflow用户
提问于 2013-01-04 05:14:57
回答 2查看 90关注 0票数 1

对于XMLHttpRequest来说,这里有些困惑:

  1. 为什么在xmlhttprequest中使用post方法时必须设置内容类型? XHR.setRequestHeader("Content-type“、”application/x form-urlencoded“);
  2. 默认值应用程序/x-www-form-urlencoded不是已经被编码了吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-04 05:42:46

为什么在xmlhttprequest中使用post方法时必须设置内容类型?

代码语言:javascript
运行
复制
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

只是一条建议--永远不要依赖默认行为,除非它明确声明和/或是标准的一部分。为什么不显式地设置内容类型?

票数 1
EN

Stack Overflow用户

发布于 2018-10-05 08:05:24

这里还有一个帮助您通过application/x form-urlencoded传递参数的工具。https://www.browserling.com/tools/url-encode。另外,我建议您先使用Postman工具检查API响应,然后在JS中使用Ajax调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14151433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档