我通过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"
答案 0 :(得分:12)
它返回-1,因为跟踪显示,甚至没有发送GET请求。已发送的是飞行前OPTIONS请求,通过返回404,阻止浏览器发送实际的GET请求。
您的服务器不应该为OPTIONS请求返回404响应。它应该返回200响应。