缺少对 HTTP-OPTION 的回答的详细信息

Posted

技术标签:

【中文标题】缺少对 HTTP-OPTION 的回答的详细信息【英文标题】:Missing detail in answer to HTTP-OPTION 【发布时间】:2014-09-26 22:08:29 【问题描述】:

我正在尝试找出我的客户端和 REST API 之间的通信问题中的问题。 我可以确定问题,但我不确定 OPTION 请求的答案中究竟缺少什么。 我的应用程序正在创建一个 HTTP POST,它由浏览器使用 HTTP-OPTION 预检。该选项要求批准自定义内容类型。服务器回答 OPTION 后,不会发送 POST。

OPTIONS /element_collection/VizRundown/channels/ExampleChannel/playlists/continuous/ HTTP/1.1
Host: localhost:8580
User-Agent: Mozilla/5.0.........
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US......
Origin: null

答案如下:

200 OK
Access-Control-Allow-Origin: *
Allow: GET, POST, OPTIONS
Content-Type: text/plain
Server: MediaSequencer/1.23.1.11957 soul/014dfd135460
Transfer-Encoding: chunked

我是否正确,答案中应该有一行批准请求的 Content-Type?像这样:

Access-Control-Allow-Headers: content-type

【问题讨论】:

【参考方案1】:

不,根据规范的相关部分,它不是必需的。

http://www.w3.org/TR/cors/#resource-preflight-requests:

为了响应预检请求,资源会指示哪个 方法和标头(简单方法和简单标头除外)它 是否愿意处理,是否支持凭证。

http://www.w3.org/TR/cors/#terminology:

如果标题字段名称是 Accept、Accept-Language 或 Content-Language 或者如果它是不区分大小写的 ASCII 匹配 Content-Type 和头域值媒体类型(不包括 参数)是一个不区分大小写的 ASCII 匹配 application/x-www-form-urlencoded、multipart/form-data 或 text/plain。

【讨论】:

以上是关于缺少对 HTTP-OPTION 的回答的详细信息的主要内容,如果未能解决你的问题,请参考以下文章

(转)ios学习--你会遇到的runtime面试题(详)

从商详页看多线程编排

win101909系统,怎么优化性能?win详10系统优化详细细操作步骤

CXF WADL 缺少复杂对象的详细信息

Kafka集群搭建与测试详细教程 | 附带详详细截图

Kafka集群搭建与测试详细教程 | 附带详详细截图