请求的内容类型标头包含的不仅仅是 MIME 类型,为什么
Request's content-type header contains more than the MIME type, why?
我注意到有时请求的content-type
标头(例如,由Firefox发出)不仅包含有关MIME类型的信息,还包含有关编码的信息。
例如,当使用 AJAX 而不是
application/json
(我所期望的)火狐发送:
application/json; charset=UTF-8
我对此行为有很多疑问:
- 还有哪些其他"参数"(或"选项",或任何你称之为
charset
值)可能发生? application/json
总是排在第一位,还是值以随机顺序出现(即,它也可以charset=UTF-8; application/json
)?- 分隔符总是
;
吗? - 测试特定 MIME 类型的规范方法是什么?显然,仅比较标题是行不通的。有什么提示吗?还有比
contentType === 'application/json || contentType.startsWith('application/json;')
更好的东西吗?
PS:对于问题#4,我创建了一个单独的问题。请参阅获取整个字符串或子字符串,具体取决于特定字符
请参阅 HTTP 1.1 RFC
3.7 媒体类型
HTTP 在内容类型中使用 Internet 媒体类型 [17](部分) 14.17) 和 Accept(第 14.1 节)标头字段,以提供开放且可扩展的数据类型和类型协商。
media-type = type "/" subtype *( ";" parameter ) type = token subtype = token Parameters MAY follow the type/subtype in the form of attribute/value pairs (as defined in section 3.6).
所以
- 没有固定的可能值列表
- 是的,类型应该排在第一位
- 分隔符
;
相关文章:
- 如何通过JavaScript了解当前加载页面的mime类型或内容类型
- EventSource 的响应具有非“文本/事件流”的 MIME 类型(“文本/纯文本”)
- Node js:如何获取文件签名标头而不是 mime 类型
- 如何在 Node.js 中发送文件之前设置 MIME 类型
- 我收到消息“资源解释为脚本,但使用 MIME 类型文本/html 传输”
- 资源被解释为脚本,但使用MIME类型text/plain传输
- 找不到 IE8 MIME 类型应用程序/json
- Safari-->"应用程序缓存清单的MIME类型不正确:text/plain&”;
- 我应该对 JavaScript 源映射文件使用哪种 MIME 类型
- Internet Explorer mimeType 始终为空,并且无法在此浏览器中获取支持的 MIME 类型
- 如何在一个 Http 响应中将多个 mime 类型返回到 Web 客户端
- 如何解决“资源解释为脚本但使用 MIME 类型文本/html 传输”
- 在Codeigniter中上传ajax上的奇怪MIME类型
- Javascript:如何从HTML文件输入中获取.tgz MIME类型
- FineUploader 和 Mime 类型(------WebKitFormBoundary) 附加到文件中
- 在 Tomcat 中更改 .xml.gz 的 mime 类型
- 请求的内容类型标头包含的不仅仅是 MIME 类型,为什么
- 在该应用程序上运行SortSite时,此IMG链接到图像的MIME类型错误的文件
- $.ajax表单使用JSONP提交给Google文档:“;被解释为脚本但用MIME类型text/html传输的资源”;
- 资源被解释为图像,但使用MIME类型的应用程序/八位字节流传输