请求的资源上不存在“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”标头