如果我发送ajax请求,我想知道为什么会出现此错误:
{{1}}
错误:
主线程上的同步XMLHttpRequest因不推荐使用 它对最终用户的体验产生不利影响。如需更多帮助, 检查default mapping of the Product entity /。
有问题吗?
谢谢,
答案 0 :(得分:2)
我想知道为什么会收到此错误
简短的回答是因为ajax中的这个选项:
async: false,
您可能还有其他更好的解决方案。如果您发布有关为什么需要使用Synchronous ajax的更多详细信息?
要么这样使用:
$.ajax({
url:'',
type:'post',
success:function(data){
// make another ajax call here then
}
})
您可以使用jQuery.when()
:
$.when( $.ajax("/page1.php"), $.ajax("/page2.php") ).done(function(a1, a2) {
// here you can get both ajax response when both gets completed.
console.log(a1);
console.log(a2);
});
此处.done()
仅在ajax完成时执行。
答案 1 :(得分:0)
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看https://xhr.spec.whatwg.org/。
这只是一个警告,与您的代码无法工作无关
您的代码中存在语法错误,但缺少}
$.ajax({
url: "testOperation.php",
async: false,
data: compareHeure,
success: function (data, statusRequest) {
}
});
答案 2 :(得分:0)
您收到警告,因为同步XMLHttpRequest阻止了UI威胁,并且它通常不是一个好的选择(事实上它已被弃用)。
阻止UI威胁会导致任何用户交互延迟和草率可能导致浏览器暂停一段时间。
尽可能使用AJAX进行异步调用并使用回调或承诺来检测呼叫何时具有状态:成功,进度或拒绝(失败)。
示例:
https://jsfiddle.net/sb11heds/
var jqxhr = $.ajax( "https://fiddle.jshell.net/favicon.png" )
.done(function() {
alert( "success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "complete" );
});
jqxhr.always(function() {
alert( "second complete" );
})
答案 3 :(得分:0)
就像其他人说的那样,同步XMLHttpRequest线程已弃用 。
我认为你正在避免异步,因为你可能正在等待呼叫完成然后再做其他事情。您可以改为使用.done
之类的回调:
$.ajax({
url: "testOperation.php",
data: compareHeure,
success: function (data, statusRequest) {
}
}).done(function(data){
// Do another Ajax or something with the data returned from the Ajax call
})
答案 4 :(得分:0)
不推荐使用同步AJAX调用,因为它们可能会在页面内容加载中产生一些问题。
它也可能导致可视设计失真,因此使用同步AJAX并不是一个好习惯,将来可能无法使用。
答案 5 :(得分:0)
检查你的AJAX调用是否明确地设置为false(async:false)(默认为true - 这是正确的方法),如果没有,那么你可能在浏览器上运行了一些扩展进行同步回拨。简单的识别方法是在Chrome中打开控制台,启用" Log XMLHttpRequests"并且您将能够看到导致问题报告的扩展名。希望这会有所帮助。