2013-04-30 34 views
10

Tôi vừa phát hiện ra rằng trình duyệt của tôi đang gửi yêu cầu "OPTION" phụ khi cố gắng thực hiện cuộc gọi ajax tên miền chéo với tiêu đề http tùy chỉnh. Tôi cho rằng nó được gọi là "yêu cầu preflight".Tắt yêu cầu OPTION preflight khi gửi yêu cầu miền chéo với tiêu đề HTTP tùy chỉnh

Có thể tắt chức năng này và chỉ gửi yêu cầu ban đầu?

Đây là mã thử nghiệm javascript của tôi:

$(document).ready(function() { 
    $.ajax({ 
     url: "http://google.fr", 
     crossDomain: true, 
     headers: { 
      "X-custom-parameter": true 
     } 
    }); 
}); 

Cảm ơn vì đã giúp!

Trả lời

10

Không, chắc chắn không thể bỏ qua yêu cầu preflight CORS. Yêu cầu preflight tồn tại để cho phép yêu cầu tên miền chéo một cách an toàn. Trong ví dụ trên, bạn đang cố gắng truy cập google.fr, nhưng google.fr không hỗ trợ CORS. Không có cách nào xung quanh điều này cho Google, vì Google không hỗ trợ các yêu cầu tên miền chéo trên trang web của mình. Nói chung, nếu bạn có quyền sở hữu máy chủ, các tùy chọn của bạn là hỗ trợ CORS, hỗ trợ các thay thế tên miền chéo thay thế như JSON-P hoặc sử dụng proxy phía máy chủ.

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