CORS 奇怪的行为
Posted
技术标签:
【中文标题】CORS 奇怪的行为【英文标题】:CORS Strange behaviour 【发布时间】:2018-04-27 10:37:21 【问题描述】:我正在使用带有 angular2 的 axios 客户端将 RESTFull 发布到特定端点。
我收到此 CORS 错误:
Failed to load http://localhost:57772/api/deepsee/v1/bi_cube_updated_namespace/Data/KPIExecute: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
当我在 chrome 开发工具网络选项卡中检查我的预检请求时,一切似乎都井然有序。网络选项卡显示:
Request URL:http://localhost:57772/api/deepsee/v1/bi_cube_updated_namespace/Data/KPIExecute
Request Method:OPTIONS
Status Code:200 OK
Remote Address:[::1]:57772
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
ACCESS-CONTROL-ALLOW-CREDENTIALS:true
ACCESS-CONTROL-ALLOW-HEADERS:authorization,content-type
ACCESS-CONTROL-ALLOW-METHODS:POST
ACCESS-CONTROL-ALLOW-ORIGIN:http://localhost:4200
ALLOW:POST,OPTIONS
来了实际的帖子:
Request URL:http://localhost:57772/api/deepsee/v1/bi_cube_updated_namespace/Data/KPIExecute
Request Method:POST
Status Code:200 OK
Remote Address:[::1]:57772
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
CACHE-CONTROL:no-cache
Connection:Keep-Alive
CONTENT-LENGTH:179
Content-Type:application/json; charset=utf-8
Date:Tue, 14 Nov 2017 12:53:46 GMT
EXPIRES:Thu, 29 Oct 1998 17:04:19 GMT
Keep-Alive:timeout=120
PRAGMA:no-cache
Server:Apache
【问题讨论】:
如果您的 apiurl
不正确,您也可能会看到 CORS
问题。确保他们都没事
他们没问题。我什至在 chome dev network 选项卡中看到响应 paylaod 为 json。
好的。后端是什么?
是的,我现在正在尝试设置它们。
【参考方案1】:
听起来您只在OPTIONS
响应中包含响应标头,而不是POST
响应。您需要将它们包含在两个响应中。
【讨论】:
以上是关于CORS 奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章
SignalR 2.0 CORS Chrome 禁用 Web 安全奇怪行为
Laravel 5 / Nginx - 在 Web 服务器级别设置的 CORS 标头的奇怪行为