2013-11-25 16 views
7

我有一个生成JSON文档的PHP文件。header('Access-Control-Allow-Origin:*');不允许CORS请求

我已经设置了header如下,但仍然出现错误。

header('Access-Control-Allow-Origin: *'); 
header('Content-Type: application/json'); 

错误消息:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://mysubdomain.mydomain.com' is therefore not allowed access.

我使用

header('Access-Control-Allow-Origin: https://mysubdomain.mydomain.com'); 

但我仍然得到错误尝试显式地允许mysubdomain.mydomain.com。

+0

当您提出请求时,您是否在Chrome的Web检查器的网络选项卡中获取标题?或者使用curl命令行? – Munim

+0

谢谢,通过从命令行使用curl,我能够诊断问题。这实际上是后来导致问题的PHP代码中的一个错误。 – Luke

+0

不客气。一定要记得首先检查和调试输出:)。我已发布我的评论作为答案,以便您可以接受并关闭此问题。 – Munim

回答

6

它没有看到设置标题的代码有什么问题,但是您可能想要检查标题是否真的被设置。使用curl -i http://yourapp来检查发送的响应头以调试它。或者,您可以使用Google Chrome的网络检查器中的网络标签或Firefox的Web Developer工具中的网络工具。

+0

我面临同样的问题。在网络工具中没有得到任何有用的东西。但是,它会在进行卷曲调用时显示'Access-Control-Allow-Origin:*' –

0

当请求的页面发生错误时,可能会出现这种情况。在这种情况下,错误页面设置标题,可能没有Access-Control-Allow-Origin标题。