【发布时间】:2012-02-20 15:08:17
【问题描述】:
我对仅在 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 中,错误函数返回“错误:访问被拒绝”。就像我说的那样,我对此完全感到困惑,所以任何见解或想法都会很棒。
【问题讨论】:
-
试试不带
https://mydomain。因此,请尝试将 URL 设为“/ajax/retrieve_transaction_details.php”。 -
我试过这个。无论出于何种原因,如果我没有指定绝对路径,其他浏览器就会尝试通过 HTTP 发出请求,从而也破坏了它。
-
也许添加一个浏览器检查,如果他们使用 IE 来实现兼容性,并且如果他们使用任何其他浏览器,则将其转发到你已经工作的代码。
-
首先,确认您没有设置它以便您从
http://www.mydomain加载页面并且您的AJAX 引用只是http://mydomain或反之亦然——这可能被视为X 域。接下来,试试://mydomain/ajax/retrieve_transaction_details.php不带http/s。
标签: php jquery ajax internet-explorer cross-domain