jQuery 已弃用同步 XMLHTTPRequest

2022-08-30 04:39:59

像许多其他网站一样,我的网站正在使用jQuery。当我打开开发人员工具时,我看到一条警告,指出 XMLHTTPRequest 是

已弃用,因为它对最终用户的体验产生不利影响。

我继续阅读部分文档,但它相当技术性。有人能用简单的术语解释从XMLHTTPRequest转向WHATWG的后果吗?它说它发生在2012年。

此外,文档还说,工作线程外部的同步 XMLHttpRequest 正在从 Web 平台中删除,当发生这种情况时,如果用户代理在服务中有它们,他们是否需要修改其现有代码?


答案 1

要避免此警告,请不要使用:

async: false

在您的任何通话中。这是已弃用的唯一功能。$.ajax()XMLHttpRequest

默认值为 ,因此,如果您根本不使用此选项,则在真正删除该功能时,您的代码应该是安全的。async: true

但是,它可能不会 - 它可能会从标准中删除,但我敢打赌浏览器将继续支持它多年。因此,如果出于某种原因确实需要同步 AJAX,则可以使用并忽略警告。但是,同步 AJAX 被认为是不良样式是有充分理由的,因此您应该尝试找到一种方法来避免它。编写Flash应用程序的人可能也从未想过它会消失,但它现在正在逐步淘汰。async: false

请注意,要替换的 API 甚至不提供同步选项。FetchXMLHttpRequest


答案 2

接受的答案是正确的,但是如果您使用Visual Studio 2013或更高版本在 ASP.NET 下进行开发,并且确定您没有发出任何同步ajax请求或在错误的位置定义任何脚本,我发现了另一个原因。

解决方案是通过取消选中VS工具栏下拉列表中的“启用浏览器链接”来禁用“浏览器链接”功能,该下拉列表由顺时针指向的小刷新图标指示。一旦您执行此操作并重新加载页面,警告就会停止!

Disable Browser Link

这应该只在本地调试时发生,但知道警告的原因仍然很好。