今天在调试网站的时候,发现报了一个错误:
如下:
- [Derecation] Synchronous XMLHttpRequest on tha main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
中文翻译:
- [弃用]主线程上的同步XMLHttpRequest被弃用,因为它对最终用户的体验有不利的影响。 如需更多帮助,请查看https://xhr.spec.whatwg.org/。
我报错的ajax代码如下:
- $.ajax({
- url:'page.php',
- type:'post',
- data Type:'JSON',
- data:{},
- async:false,
- success:function(re){
- alert(1212);
- if(re.code == 200){
- alert(145);
- total=re.total;
- }
- }
- })
解决办法
其实,解决办法也非常的简单,而且XMLHttpRequest手册网址:https://xhr.spec.whatwg.org/ 也有说明,只是很少人不去看罢了。
大致内容如下:
该open()方法
- client . open(method, url [, async = true [, username = null [, password = null]]])
设置请求方法,请求URL和同步标志。
SyntaxError如果任一方法不是有效的HTTP方法或URL无法解析,则抛出异常。
SecurityError如果方法对` CONNECT`,` TRACE`或` TRACK` 是不区分大小写的匹配,则抛出异常。
InvalidAccessError如果async为false,当前全局对象是Window对象,且timeout属性不为零或responseType属性不是空字符串,则会引发异常。
同步XMLHttpRequest外部的工作人员正在从Web平台上移除,因为这对最终用户的体验有不利的影响。(这是一个需要很多年的漫长过程。)当前的全局对象是一个对象时,开发人员不能为异步参数传递false 。我们强烈建议用户代理警告开发者工具等的使用,并且可以与实验抛出一个当它发生异常。WindowInvalidAccessError
注意:相信大家都知道,async: false(同步),async: true(异步);async默认状态是true;
如果没有特殊的需求,建议async用默认状态。
2018年05月14日 23:26:21 沙发
我也出现了“主线程中同步的 XMLHttpRequest 已不推荐使用”的情况!