IE中的HTTPS Ajax请求问题(非交叉域)

时间:2012-01-27 16:15:53

标签: php jquery ajax internet-explorer cross-domain

我很难解决我在IE中使用HTTPS Ajax调用的问题。 IE似乎认为我正在提出跨域请求,但我不是。从页面https://mydomain/customer_profile.php

调用以下代码
$.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);
    }
});

此请求在除IE之外的每个浏览器中都能正常工作。在IE中,错误函数返回“错误:访问被拒绝”。就像我说的那样,我对此完全感到难过,所以任何见解或想法都会很棒。

2 个答案:

答案 0 :(得分:3)

我猜您在HTML的 head 部分中使用了 <base> 标记;正确?

如果指向 http 而不是 https ,则会破坏 IE

答案 1 :(得分:2)

尝试在您的请求中将crossDomain设置为true,如下所示:

$.ajax({
    type: 'post',
    url: 'https://mydomain/ajax/retrieve_transaction_details.php',
    data: /* my data is here */,
    crossDomain: true,
    success: function(response){
        // do something with the response
    },
    error: function (xhr, ajaxOptions, thrownError){
        alert(xhr.status);
        alert(thrownError);
    }
});

这应该允许您发出请求,无论它是否是跨域的。