对于来自AngularJS的跨域请求,Symfony2返回状态为-1的空错误

时间:2015-12-03 07:17:37

标签: angularjs symfony cors

我有两个独立的项目:服务器端( Symfony2 )和客户端( AngularJS )。

我正在使用NelmioCorsBundle来允许CORS:

nelmio_cors:
    defaults:
        allow_credentials: false
        allow_origin: []
        allow_headers: []
        allow_methods: []
        expose_headers: []
        max_age: 0
        hosts: []
        origin_regex: false

paths:
    '^/' :
        allow_credentials: true
        allow_origin: ['*']
        allow_headers: ['*']
        expose_headers: ['*']
        allow_methods: ['POST', 'GET', 'DELETE', 'PUT', 'HEAD', 'OPTIONS']
        max_age: 3600

登录后我尝试请求任何页面但得到错误,此错误没有文本,包含空数据和响应状态-1 。在浏览器控制台中,我将请求视为“301永久移动”。

我试图通过xdebug调试这个。但在app.php之后,我已经移动到ErrorHandler而没有错误(也许我错过了一些东西)。

我也读过这个https://github.com/angular/angular.js/issues/3336,所以看起来我的错误是浏览器问题,因为没有错误信息返回。

我的服务器会在每次响应时返回CORS标头。

我可以做些什么来修复此错误或至少得到此错误的原因?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

哦,经过大量的调试和阅读后,我意外地解决了这个问题。

原因是棱角分明。所以,我为请求URL添加了尾部斜杠,所有这些都成为了工作。

顺便说一下,只有在我尝试使用get请求发送标头时才出现此问题(尚未使用put / delete请求进行测试)。