Bla*_*ise 11 http-headers cors
鉴于这些请求标头:
Host: api.example.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Origin: https://web.example.org
Access-Control-Request-Method: GET
Access-Control-Request-Headers: authorization
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)
这些响应头:
Connection: keep-alive
Content-Length: 0
Content-Type: text/plain; charset=utf-8
Date: Tue, 13 Oct 2015 10:57:34 GMT
Server: nginx/1.8.0
access-control-allow-headers: Authorization, Content-Type
access-control-allow-methods: PUT, DELETE, PATCH
access-control-allow-origin: *
Run Code Online (Sandbox Code Playgroud)
即使只明确允许Authorization
和Content-Type
标头,这也可以工作.为什么我不允许我的浏览器发送其他标头?(DNT
例如)
更新:此MDN页面包含简单标头的概述(默认的CORS安全请求标头):
一个简单的头(或CORS安全的请求头)是以下HTTP头之一:
- 接受
- 接受语言
- 内容语言
- Content-Type,其MIME类型为其application/x-www-form-urlencoded,multipart/form-data或text/plain的解析值(忽略参数).
或者其中一个客户端提示标题:
- DPR
- 下行
- 保存数据
- 视口宽度
- 宽度
没有看到你的代码生成标题,或者你正在服务于哪个系统,即nginx或apache,我能做的最好的就是引用http://client.cors-api.appspot.com/client这将允许你来测试你的cors请求.另外,您应该查看http://enable-cors.org/server.html以了解具体设置.例如在nginx上,你可以有这样的东西
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
Run Code Online (Sandbox Code Playgroud)
有一组普通标题,然后是你必须明确调用的标题集.请参阅http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server,了解如何在服务器上进行设置.
归档时间: |
|
查看次数: |
4929 次 |
最近记录: |