我有一个Ajax请求,它会在成功时更改输入字段的内容。该输入字段在更改时触发另一系列Ajax请求。该代码有效,但根据Chrome中的控制台,据报道主线程上的同步XMLHttpRequest由于其对最终用户体验的不利影响而被弃用。看来此错误消息表明正在进行同步请求。
以下是代码:
$.ajax({
type: 'GET',
url: '/widgets/test',
async: true,
success: function (response) {
$("#widgetData").val(JSON.stringify(response));
$("#widgetData").trigger("change");
},
error: function (xhr, textStatus, errorThrown) {
console.log("There was a problem requesting the widget endpoint!");
}
});
$("#widgetData").change(function () {
var obj = jQuery.parseJSON($("#widgetData").val());
$.each(obj, function (id, url) {
$("#mainContent").append("<div class='widget' id='widget" + id + "'></div>");
$("#widget" + id).load(url);
});
});
我打算让所有请求都是异步的,并且相信我所写的内容应该完成这项任务。请帮我确定哪里出错,以及为什么我收到上述错误!
答案 0 :(得分:2)
您的第一个ajax
请求似乎将async
标记设置为false
。您可以将该呼叫更改为以下
$.ajax({
type: 'GET',
async: true,
url: '/widgets/test',
success: function (response) {
$("#widgetData").val(JSON.stringify(response));
$("#widgetData").trigger("change");
},
error: function (xhr, textStatus, errorThrown) {
console.log("There was a problem requesting the widget endpoint!");
}
});
这应修复您的警告信息