16

I call a backend service/resource by AngularJs $HTTP GET. When it is not available it returns 404 and Chrome Network tab shows that it is 404 as the followings:

Request Method:OPTIONS
Status Code:404 Not Found

BUT inside AngularJs $HTTP call result, I get status=-1 and not 404:

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

Why does it happen?

NB ) I have a jetty Service on the backend and enabled CORS:

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

1 Answer 1

14

It returns -1 because, as the traces show, the GET request has not even been sent. What has been sent is the pre-flight OPTIONS request, which, by returning 404, prevented the browser to send the actual GET request.

Your server shouldn't return a 404 response for the OPTIONS request. It should return a 200 response.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.