首页 > 解决方案 > MVC 中的 ajax 调用导致“主线程上的 xmlhttprequest 已弃用”警告

问题描述

谁能明白为什么这个 ajax 调用会导致控制台警告?警告表明这是一个同步调用,但我不明白为什么会这样。它还返回正确的模型数据并将其加载到视图中,但视图显示为“损坏”,就好像它没有正确加载一样。

主线程上的 xmlhttprequest 已被弃用,因为它对最终用户的体验产生不利影响

功能:

function addSelectedModules () {
    event.preventDefault();
    $('#createLearningPathForm').validate();
    if ($('#createLearningPathForm').valid()) {

        return new Promise((resolve, reject) => {
            $.ajax({
                type: "POST",
                url: "/umbraco/Surface/CreateLearningPath/SetSelectedList",
                data: $('#createLearningPathForm').serialize(),
                success: function (data) {
                    resolve(data)
                },
                error: function (error) {
                    reject(error)
                }
            })
        })

    }
} 


$("#addSelectedModules").on("click", function () {
    addSelectedModules().then(data => {
        $("#lpPartial").html(data);
    })
        .catch(error => {
            console.log(error);
        })
});

标签: javascriptajaxasp.net-mvc

解决方案


如果其他人需要这个,我通过更新单个元素而不是我正在做的更新顶级 div 来对其进行排序:

$("#addSelectedModules").on("click", function () {
    addSelectedModules().then(data => {
        var selected = $(data).find('#selectedDiv').html();
        var select = $(data).find('#selectItems').html();

        $("#selectedDiv").html(selected);
        $("#selectItems").html(select);
    })
        .catch(error => {
            console.log(error);
        })
});

推荐阅读