【发布时间】:2015-01-10 16:55:32
【问题描述】:
问题
我正在使用以下函数通过 jQuery 发出 ajax 请求:
function ajaxRequest(requestName,responseFunction,parameters) {
console.log('Making request ' + requestName);
var now = new Date();
$.ajax({
type: "GET",
url: "ajax.php",
error: function(jqXHR,textStatus,errorThrown ) {
console.log('Error: ' + textStatus + ' ' + errorThrown);
},
success:function(msg) {
console.log('Success! ' + msg);
}
});
}
“访问被拒绝”错误的可能原因有哪些?我可以做些什么来获得更有意义的错误消息?
更多信息...
我目前正在调用此函数以在输入字段中保存一个值。这适用于所有经过测试的浏览器。
我还从 onpaste 事件(即 )调用此函数来完成相同的工作,这就是失败的原因,但仅在 IE11 中。错误只是“访问被拒绝。”。
注意,这不是跨域请求,是请求同目录下的文件。
测试于:
- Mac + Safari
- Mac + Chrome
- WinXP + IE8
- Win7 + IE9
- Win 8 + IE10
- 在 8.1 + IE11 中(唯一导致问题的版本。)
请注意,我已经删除了一些不相关的代码部分,例如使用 responseFunction 和 parameters 变量。
【问题讨论】:
-
这是实际的相对网址吗?
-
添加下面的代码试试看 -
<meta http-equiv="X-UA-Compatible" content="IE=Edge" > -
epascarello - 是的,这就是我测试过的。感谢 WisdmLabs 的建议,但这并没有什么不同。
-
确保您没有从 CDN(例如 Google Hosted Libraries)加载您的 jQuery 资产。由于域不同,这违反了 Microsoft 用来防止 Internet Explorer 中的跨站点脚本的某些安全协议。另一个试用解决方案是更改您的 jQuery 版本。
-
感谢 WisdmLabs - 再次所有好主意,但所有我都尝试过 :(
标签: jquery ajax internet-explorer-11