Vấn đề này được đề cập trong stackoverflow một chục lần rồi, nhưng tôi có một vấn đề khác.Chrome nói không có tiêu đề 'Access-Control-Allow-Origin', nhưng tiêu đề là có
Chrome trước tiên thực hiện cuộc gọi "TÙY CHỌN" để nhận tiêu đề. Như bạn có thể thấy, các tiêu đề chính xác ở đó.
Đối với một số lý do, Chrome không chú ý đến tiêu đề và hủy bỏ các yêu cầu thực tế trong cùng một cách thức mà nó sẽ nếu tiêu đề là không có gì cả.
Trang thực sự làm cho ba cuộc gọi và tò mò, một trong số họ làm việc.
Vậy câu hỏi là, khi tiêu đề thực sự là có, tại sao Chrome không tôn trọng nó? Tôi có thể làm gì để gỡ lỗi nó?
Cập nhật
Tôi đã thử thêm Access-Control-Allow-Methods
vì vậy bây giờ phản ứng tiêu đề từ các tùy chọn gọi bao gồm các tiêu đề phản ứng:
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:*
Kết quả là như nhau.
Thiết lập tiêu đề ở phía máy chủ
tôi đặt tiêu đề trên serverside trên mọi yêu cầu (trong Global.asax.cs Application_BeginRequest)
Response.Headers.Add("Access-Control-Allow-Origin", "*");
Response.Headers.Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
Sau khi điều tra với Fiddler
Tôi đã xem xét yêu cầu và phản hồi thô và thấy điều gì đó đáng ngạc nhiên: Lỗi này là lỗi HTTP 500 đơn giản từ ứng dụng ication. Có thể do lỗi HTTP 500 không chứa tiêu đề phù hợp, Chrome không hiển thị lỗi được trả lại mà thay vào đó hiển thị lỗi liên quan đến tiêu đề.
trả lời
Vì vậy, trong kết luận, nếu Chrome cho biết No 'Access-Control-Allow-Origin' header
nó thực sự có thể che đậy một HTTP 500 lỗi. Điều này có thể được xác định bằng cách kiểm tra yêu cầu và phản hồi trong Fiddler.
Và mã ... mã ở đâu ?? – Hackerman
Cũng cần có tiêu đề 'Access-Control-Allow-Methods'. Tôi không nhìn thấy nó trong ảnh chụp màn hình. – monsur
@RobertRozas Cảm ơn. Vấn đề này là về lý do tại sao Chrome hoạt động như vậy, vì vậy tôi cố gắng không bao gồm mã sẽ tập trung khỏi vấn đề mà tôi đang cố gắng hiểu. Nhưng tôi có thể đăng các yêu cầu/phản hồi thô nếu cần? –