许多论坛都报道了这个问题,包括这个问题,我找到了一个显然独特的解决方案,尽管我不确定它是否明智。它确实有效,但它可能是更接近JQuery开发或其成员之一可能能够以权威回答的东西。
许多其他人和我遇到的问题是带有此文本的控制台错误消息:
主线程上的同步XMLHttpRequest因不推荐使用 它对最终用户的体验产生不利影响。如需更多帮助, 检查http://xhr.spec.whatwg.org/
在我的情况下,在许多其他情况下,它引用了jquery.js文件,特别是这一行
xhr.open( options.type, options.url, options.async; options.username, options.password );
http://xhr.spec.whatwg.org/州的相关信息:
当开发人员不能为async参数传递false JavaScript全局环境是一个文档环境。
我有很多复杂的,缩小的例程,由其他人使用JQuery编写,我没有专家在这些例程中找到 where 来创建错误。
然后让我在jquery.js文件中简单地用true
代替options.async
,如下所示:
xhr.open( options.type, options.url, true, options.username, options.password );
瞧!在控制台报告错误的每个浏览器上问题都消失了。 (在缩小的JQuery.min.js文件中查找和编辑相关代码非常简单;在所有其他依赖于JQuery的例程中找到它将会很乏味,如果不是轻微不可能的话。)
但我的问题是:这种明显的解决办法是不明智的吗?我的网站 工作,并且没有任何使用JQuery的例程存在问题。评论非常感谢。
答案 0 :(得分:0)
问题出现在自己的观察中
问题的原因在于当前版本2.1.4中的jquery.js文件。尽管将options.async
记录为不应该传递值true
的已弃用参数,但jquery.js文件本身使用文件中先前定义的数据调用xhr.open文件,参数设置为{ {1}}。这是jquery.js文件中的违规例程:
false
当jQuery._evalUrl = function( url ) {
return jQuery.ajax({
url: url,
type: "GET",
dataType: "script",
async: false,
global: false,
"throws": true
});
};
设置为async
时,问题就会消失,不再需要我之前使用的黑客解决方案。
现在,说真的,这是一个真正的JQuery专家应该评论的东西。为什么JQuery初始化文件违反了建议用户遵循的非常标准的使用方法?