2015-11-02 23 views
15

Tôi gọi dịch vụ/tài nguyên phụ trợ của AngularJs $HTTP GET. Khi nó không phải là có sẵn nó trả 404 và tab Mạng Chrome sẽ hiển thị rằng nó là 404 như sau:

Request Method:OPTIONS 
Status Code:404 Not Found 

NHƯNG bên AngularJs $HTTP kết quả cuộc gọi, tôi nhận được status=-1 và không 404:

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

Tại sao nó lại xảy ra?

NB) Tôi có một dịch vụ cầu cảng trên phụ trợ và kích hoạt CORS:

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

Trả lời

10

Nó trả về -1 bởi vì, như các dấu vết cho thấy, các yêu cầu GET đã thậm chí không được gửi. Những gì đã được gửi là yêu cầu OPTIONS trước chuyến bay, mà bằng cách trả về 404, ngăn trình duyệt gửi yêu cầu GET thực tế.

Máy chủ của bạn không được trả về phản hồi 404 cho yêu cầu OPTIONS. Nó sẽ trả về một phản hồi 200.

Các vấn đề liên quan