Bất cứ khi nào tôi tạo yêu cầu jQuery.ajax
, nó hoạt động tốt khi URL sử dụng giao thức HTTP. Nhưng khi tôi gửi cùng một yêu cầu đến máy chủ HTTP, nó được gửi mà không có tiêu đề [HTTP_X_REQUESTED_WITH: XMLHttpRequest
]. Vì vậy, máy chủ không có cách nào để biết rằng đây là một yêu cầu AJAX!jQuery.ajax không gửi tiêu đề ajax thích hợp khi sử dụng HTTPS
Tôi đã thử:
- Switching $ .ajax, $ .post, $ .get
- Buộc tiêu đề sử dụng
beforeSend
- Thiết
CrossDomain:true
Lưu ý: Không không có vấn đề tên miền chéo, yêu cầu hợp lệ và được xử lý, nhưng không phải là AJAX.
Sự cố này xảy ra khi URL hiện tại là http nhưng URL được yêu cầu nằm trên cùng một miền nhưng sử dụng HTTPS. http://example.com/home sẽ sử dụng AJAX POST để gửi đến
Đây ** là ** vấn đề tên miền chéo AFAIK. [SOP] (http://en.wikipedia.org/wiki/Same_origin_policy) yêu cầu phải có cùng một giao thức và cổng (khi bạn đang sử dụng HTTP -> HTTPS và 80 -> 443). Có vẻ như (không có thêm thông tin), jQuery * là * tạo một yêu cầu JSONP đằng sau hậu trường, bỏ qua các tiêu đề HTTP bổ sung. – Matt
Bạn có nghĩa là khi bạn đang ở trên máy chủ HTTP và thực hiện yêu cầu ajax đến máy chủ HTTPS phải không? –
@MikeGleasonjrCouturier yest, đây là trường hợp. – mjalajel