Ajax POST - 不推荐用于同步请求的“XMLHttpRequest.withCredentials”

Posted

技术标签:

【中文标题】Ajax POST - 不推荐用于同步请求的“XMLHttpRequest.withCredentials”【英文标题】:Ajax POST - 'XMLHttpRequest.withCredentials' for synchronous requests is deprecated 【发布时间】:2015-08-15 14:39:00 【问题描述】:

我想做的事情应该很简单。

我正在尝试将一些表单值发布到返回 JSON 的 mvc 控制器。

如果我获得成功,我会显示一个弹出窗口,如果我获得错误,我会显示另一个弹出窗口。

但在控制台中出现两个错误:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

browserLink:37 Setting 'XMLHttpRequest.withCredentials' for synchronous  requests is deprecated.
Navigated to http://aso.local/

页面会重新加载。

这是我的代码:

    $('#mail-message-btn').click(function () 
    if ($("form")[0].checkValidity()) 
        var formParams = $('#contact-form').serialize();
        $.post('/umbraco/surface/Contact/ContactForm', formParams, function (data) 
            processData(data);
        );
    
);


function processData(data) 
    $('#mail-failure').hide();
    $('#invalid-email').hide();
    $('#empty-field').hide();
    $('#mail-success').hide();
    if (data.success == 'True') 
        $('#mail-message-header').toggleClass('mail-message-error', false);
        $('#mail-message-header').toggleClass('mail-message-success', true);
        $('#mail-success').show();
        $('#mail-message').show();

        alert("true");
     else if (data.success == 'False') 

        alert("false");
        $('#mail-message-header').toggleClass('mail-message-error', true);
        $('#mail-message-header').toggleClass('mail-message-success', false);
        $('#mail-failure').show();
        $('#mail-message').show();

    

我将测试警报窗口放入以确保我进入正确的 if 块,并且当我这样做时它可以工作! (弹出窗口显示)但只要我在警报框中单击确定,我的弹出窗口就会消失!

太令人沮丧了,我也尝试了 $.Ajax,结果相同!

帮助?

【问题讨论】:

jQuery has deprecated synchronous XMLHTTPRequest的可能重复 【参考方案1】:

您看到的错误来自 Visual Studio 的 BrowserLink。可以尝试禁用 BrowserLink 看看是否仍然出现错误?

http://www.poconosystems.com/software-development/how-to-disable-browser-link-in-visual-studio-2013/

【讨论】:

非常感谢你,经典的视觉工作室魔术!

以上是关于Ajax POST - 不推荐用于同步请求的“XMLHttpRequest.withCredentials”的主要内容,如果未能解决你的问题,请参考以下文章

js中请求数据的$post和$ajax区别(同步和异步问题)

Ajax同步异步;get和post

jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

AJAX 的GET和POST方法(向服务器发送请求)

Ajax同步与异步

20180822 ajax post 方式请求