2016-08-02 169 views
1

我正在使用一个外部API的AngularJS应用程序,我有一个奇怪的问题(CORS)。我做了很多研究并没有解决这个问题。Nginx网络浏览器CORS问题

当我打我的API时,预检请求很好(状态204无内容), ,但是当服务器用另一个状态码比2xx(200,204等等)响应时,我得到了CORS问题。

如果我的服务器发送回2xx作为状态代码没问题,我们没有CORS问题,但是如果发送另一个状态代码是问题。

API: Sylex(PHP框架)下运行的Nginx

前应用AngularJS - 使用的WebPack

XHR VIEW:

XHR view

控制台CORS错误:

Console CORS Error

回答

0

搜索的一天,我想通了其中CORS是从哪里来后。 Nginx的配置没问题。 这是API。

在预检请求(OPTIONS)服务器让通过了请求,因为NGINX允许的原点和头(存取控制允许来源,访问控制 - 允许报头)

但是当API发回响应时,标题没有设置。

我通过添加存取控制允许来源访问 - 控制 - 允许报头到响应固定它。

重要提示:我发现数据在Web浏览器上的200状态代码的响应中无法恢复。 要修复它删除头在别人的反应增加(5XX,4XX,等..) (我不知道,如果它只是在我的情况)

我还没有开发的API,这就是为什么它花了我一天的时间来弄清楚。希望我会帮助有人用这个用例:)