【问题标题】:Cross-Origin Request Blocked happened but all requests are to source domain [duplicate]跨域请求被阻止,但所有请求都发往源域[重复]
【发布时间】:2017-01-12 10:35:48
【问题描述】:

我的网站有问题。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the 
remote resource at http://example.com/index.php.
(Reason: CORS header 'Access-Control-Allow-Origin' missing).

当我搜索此错误时,原因是向外部域发送请求。但这不是我的问题原因,因为我的所有请求都对源域正确。

我的域是http://example.com,所有请求都发往http://example.com/index.php

*更新:

这只是因为我在我的请求中使用了一些未处理的标头,因此当收到预检Option 响应时,服务器不允许访问该标头,因此发生了此错误。

【问题讨论】:

  • 请记住,CORS 非常严格!这意味着 http://example.comhttp://www.example.com 不是相同的域,除非 www 在您的 DNS 记录中定义为 CNAME。

标签: javascript php


【解决方案1】:
Access-Control-Allow-Origin: *

这可能有助于把它放在标题中,如果你想要的比你可以检查的更多......这里https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

【讨论】:

  • 你真的希望他向任何资源开放他的域?!谈论安全风险..
【解决方案2】:

尝试在 API 控制器构造函数中添加以下代码,它适用于我。

错误:跨域请求被阻止:同源策略不允许 在 [url] 读取远程资源

这可以通过移动来解决 资源到同一个域或启用 CORS。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

【讨论】:

  • 基本上你在这里做的是:我的防火墙在端口 2300 上阻止了我的游戏。让我们完全移除防火墙来解决这个问题。
  • @icecub 我们可以授予对特定 IP 的访问权限吗?例如 header("Access-Control-Allow-Origin: 172.123.23.23");假设这是托管应用程序的服务器 IP?
猜你喜欢
  • 1970-01-01
  • 2019-11-04
  • 2017-02-06
  • 2021-06-26
  • 2014-10-13
  • 2016-04-20
  • 2018-12-31
相关资源
最近更新 更多