Tôi gặp vấn đề với một cuộc gọi HTTPS Ajax chỉ trong IE. IE dường như nghĩ rằng tôi đang thực hiện một yêu cầu crossdomain, nhưng tôi thì không. Các mã sau đây được gọi là từ trang https://mydomain/customer_profile.php
:Các vấn đề với Yêu cầu Ajax HTTPS Trong IE (Không phải Crossdomain)
$.ajax({
type: 'post',
url: 'https://mydomain/ajax/retrieve_transaction_details.php',
data: /* my data is here */,
success: function(response){
// do something with the response
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
Yêu cầu này chỉ hoạt động tốt ở mọi trình duyệt trừ IE. Trong IE, hàm lỗi trả về "Lỗi: Truy cập bị từ chối". Như tôi đã nói, tôi hoàn toàn bối rối về điều này, vì vậy bất kỳ cái nhìn sâu sắc hay ý tưởng nào sẽ tuyệt vời.
Dùng thử không có 'https: // mydomain'. Vì vậy, hãy thử với URL là "/ajax/retrieve_transaction_details.php". –
Tôi đã thử cách này. Vì bất kỳ lý do gì, nếu tôi không chỉ định đường dẫn tuyệt đối, các trình duyệt khác sau đó sẽ cố gắng thực hiện yêu cầu qua HTTP, do đó, phá vỡ nó trong quá trình đó. –
Có lẽ thêm một kiểm tra cho các trình duyệt mà sẽ làm theo một con đường nếu họ sử dụng IE cho khả năng tương thích và nếu họ sử dụng bất kỳ trình duyệt khác sau đó chuyển tiếp nó đến mã u đã có làm việc. – HenryGuy