我一直在向控制台添加日志,以检查不同变量的状态,而不使用Firefox调试器。
然而,在我在main.js文件中添加console.log的许多地方,我收到了以下错误,而不是我给自己的可爱的手写消息:
主线程上的同步XMLHttpRequest已弃用,因为它会对最终用户的体验产生不利影响。更多帮助http://xhr.spec.whatwg.org/
我可以在我的代码使用中添加哪些不会导致此错误的console.log替代品或包装器?
我“做错了”吗?
我一直在向控制台添加日志,以检查不同变量的状态,而不使用Firefox调试器。
然而,在我在main.js文件中添加console.log的许多地方,我收到了以下错误,而不是我给自己的可爱的手写消息:
主线程上的同步XMLHttpRequest已弃用,因为它会对最终用户的体验产生不利影响。更多帮助http://xhr.spec.whatwg.org/
我可以在我的代码使用中添加哪些不会导致此错误的console.log替代品或包装器?
我“做错了”吗?
当前回答
这个问题在我的案例中得到了解决。
JS
$.ajaxPrefilter(function( options, original_Options, jqXHR ) {
options.async = true;
});
这个答案被插入到这个链接中
https://stackoverflow.com/questions/28322636/synchronous-xmlhttprequest-warning-and-script
其他回答
这个问题是2014年提出的,现在是2019年,所以我想寻找更好的选择是件好事。
你可以简单地在Javascript中使用fetch api,它为你提供了更多的灵活性。
例如,请参阅此代码
fetch('./api/some.json')
.then((response) => {
response.json().then((data) => {
...
});
})
.catch((err) => { ... });
像@Nycen一样,我也得到了这个错误,因为一个链接到Cloudfare。我的是Select2插件。
我刚把它拆了
src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"
错误消失了。
为避免此警告,请不要使用:
async: false
在任何$.ajax()调用中。这是XMLHttpRequest唯一被弃用的特性。
默认为
async: true
jQuery已经弃用了同步XMLHTTPRequest
我也面临着同样的问题,但能够通过放置async: true来修复它。我知道它默认为true,但当我显式地写它时,它是有效的
$.ajax({
async: true, // this will solve the problem
type: "POST",
url: "/Page/Method",
contentType: "application/json",
data: JSON.stringify({ ParameterName: paramValue }),
});
在MVC应用程序中,我得到了这个警告,因为我用一个返回View()而不是PartialView()的方法打开了一个Kendo窗口。View()试图再次检索页面的所有脚本。