我一直在向控制台添加日志,以检查不同变量的状态,而不使用Firefox调试器。

然而,在我在main.js文件中添加console.log的许多地方,我收到了以下错误,而不是我给自己的可爱的手写消息:

主线程上的同步XMLHttpRequest已弃用,因为它会对最终用户的体验产生不利影响。更多帮助http://xhr.spec.whatwg.org/

我可以在我的代码使用中添加哪些不会导致此错误的console.log替代品或包装器?

我“做错了”吗?


当前回答

这个问题是2014年提出的,现在是2019年,所以我想寻找更好的选择是件好事。

你可以简单地在Javascript中使用fetch api,它为你提供了更多的灵活性。

例如,请参阅此代码

fetch('./api/some.json')
    .then((response) => {
        response.json().then((data) => { 
            ... 
        });
    })
    .catch((err) => { ... });

其他回答

这个问题是2014年提出的,现在是2019年,所以我想寻找更好的选择是件好事。

你可以简单地在Javascript中使用fetch api,它为你提供了更多的灵活性。

例如,请参阅此代码

fetch('./api/some.json')
    .then((response) => {
        response.json().then((data) => { 
            ... 
        });
    })
    .catch((err) => { ... });

在Chrome浏览器中,按“F12” 开发工具->按F1。 参见设置->通用->外观:“不显示chrome数据保护警告”-设置此复选框。 参见设置->general->Console:“Log XMLHTTPRequest”-设置此复选框。

享受

我得到这个异常时,我设置url在查询像“example.com/files/text.txt”。我把url改为“http://example.com/files/text.txt”,这个异常消失了。

在我的特殊情况下,我呈现了一个没有渲染布局的Rails部分:false,这是重新渲染整个布局,包括<head>标记中的所有脚本。添加渲染布局:false控制器动作修复了这个问题。

这个问题在我的案例中得到了解决。

JS

$.ajaxPrefilter(function( options, original_Options, jqXHR ) {
    options.async = true;
});

这个答案被插入到这个链接中

https://stackoverflow.com/questions/28322636/synchronous-xmlhttprequest-warning-and-script