【问题标题】:Missing detail in answer to HTTP-OPTION缺少对 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

【问题讨论】:

    标签: rest http http-post http-options-method preflight


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多