缺少对 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 的回答的详细信息的主要内容,如果未能解决你的问题,请参考以下文章