2015-11-02 61 views
15

我通过AngularJs $HTTP GET调用后端服务/资源。当它不存在,它返回404和Chrome网络标签表明,它是404情况如下:

Request Method:OPTIONS 
Status Code:404 Not Found 

但里面AngularJs $HTTP调用结果,我得到status=-1,而不是404

{data: null, status: -1, config: Object, statusText: ""} 

为什么会发生?

NB) 我在后端码头服务并启用CORS:

"Access-Control-Allow-Origin":"*" 
"Access-Control-Allow-Headers": "origin, content-type, accept, authorization" 
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS, HEAD" 

回答

10

返回-1,因为,作为跟踪显示,GET请求甚至还没有被发送。已发送的是预发行OPTIONS请求,该请求通过返回404阻止浏览器发送实际的GET请求。

您的服务器不应该返回OPTIONS请求的404响应。它应该返回一个200响应。