我正在使用以下函数通过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。错误只是“访问被拒绝。”。
请注意,这不是跨域请求,而是在同一目录中请求文件。
测试:
请注意,我已经删除了一些不相关的代码部分,例如使用responseFunction和parameters变量。
答案 0 :(得分:7)
经过大量的研究,我能想出的唯一解决方案就是使用setTimeout使AJAX请求在1毫秒后触发,而不是立即触发。我认为这是IE11中的一些错误,但希望这个解决方案对某人有用。
最后,我改变了这段代码:
ajaxRequest('save_function','response_function',params);
到此:
setTimeout( (function(params) {
return function() {
ajaxRequest('save_function','update_save_marksheet_mark',params);
};
})(params),1);
为了清楚起见,第一行代码在所有测试的浏览器中都有效,远低于IE7,IE11除外。