Tôi gửi yêu cầu ajax CORS tới máy chủ nút đang chạy nhanh. Trong cả hai nhật ký máy chủ và giao diện điều khiển js, tôi có thể thấy rằng yêu cầu OPTIONS preflight thành công.CORS: vé xem trước, yêu cầu chính hoàn thành w/200, nhưng trình duyệt vẫn có lỗi Xuất xứ
Sau đó, yêu cầu chính cũng thành công trên máy chủ và phản hồi với 200 và những gì tôi nghĩ là các tiêu đề chính xác. Tuy nhiên, trong Chrome, tab mạng báo cáo yêu cầu thứ hai là "bị hủy" và phản hồi không được chấp nhận hoặc xử lý:
XMLHttpRequest không thể tải http://myserver.com/upload. Xuất xứ http://mysite.com không được cho phép bởi Access-Control-Allow-Origin.
Dưới đây là các bản ghi máy chủ với các tiêu đề được in ra cho cả hai yêu cầu và trả lời:
76.79.201.210 - - [27/Jun/2013:23:23:17 +0000] "OPTIONS /upload HTTP/1.1" 204 0 "http://mysite.com/add" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
START
{ host: 'localhost:5001',
connection: 'close',
'content-length': '109587',
origin: 'http://mysite.com',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36',
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryBZA4TATeeVWMHArH',
accept: '*/*',
referer: 'http://mysite.com/add',
'accept-encoding': 'gzip,deflate,sdch',
'accept-language': 'en-US,en;q=0.8' }
{ 'x-powered-by': 'Express',
'access-control-allow-origin': '*',
'access-control-allow-methods': 'GET, POST, PUT, DELETE, OPTIONS',
'access-control-allow-headers': 'X-Requested-With' }
XX.XX.XXX.210 - - [27/Jun/2013:23:23:19 +0000] "POST /upload HTTP/1.1" 200 118 "http://mysite.com/add" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
- - - [Thu, 27 Jun 2013 23:23:19 GMT] "POST /upload HTTP/1.0" 200 - "http://mysite.com/add" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36"
Cập nhật: ảnh chụp màn hình từ tab mạng của Chrome - những "hủy" một là một trong những điều đó là một 200 trên
http://cl.ly/image/3c09330i1a17
vấn đề
Tôi cũng đã thử đặt "Access-Control-Allow-Headers" thành "*" với cùng một kết quả –
Bạn đang đặt tiêu đề CORS về yêu cầu thực tế quá đúng không? không chỉ là preflight? – david
Có, bộ tiêu đề thứ hai (bắt đầu bằng x-powered-by) ở trên là các tiêu đề cho phản hồi chính. Tôi không in ra các tiêu đề yêu cầu tùy chọn, nhưng chúng giống nhau. –