请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://localhost”

Posted

技术标签:

【中文标题】请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://localhost”【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access 【发布时间】:2017-09-26 09:13:04 【问题描述】:

我在 AngularJS(离子框架)中有一个应用程序,在 Symfony 中有一个服务器。

在本地一切正常,但现在我在服务器上进行在线测试。不幸的是,一切都不像本地那样发生,我有以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http: // localhost' 因此不允许访问。

我想知道如何添加缺少的“Access-Control-Allow-Origin”CORS 标头。

【问题讨论】:

【参考方案1】:

我认为您的问题不是来自 Angular,看起来它来自您的 API 服务器。

您可能需要一些标头服务器端:

Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS

【讨论】:

是的,我对自己说同样的话,现在你对我说了这句话。所以我必须寻找一种将标头添加到 Symfony 服务器的方法【参考方案2】:

使用此捆绑包:NelmioCorsBundle

CORS-Bundle 用于定义 CORS 规则。此捆绑包允许您定义哪些域可以访问您的 REST API。它也会让你的工作更轻松:)

【讨论】:

是的,非常感谢!我只是想测试这个捆绑包,它可以工作:)

以上是关于请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://localhost”的主要内容,如果未能解决你的问题,请参考以下文章

django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”

如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头

Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头

Angular 2请求的资源上不存在“Access-Control-Allow-Origin”标头[重复]

API 请求错误 - 请求的资源上不存在“Access-Control-Allow-Origin”标头