Angular 4 - 主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用

时间:2017-05-23 08:01:34

标签: angular angular2-services

我在控制台中收到警告,如下所示。这个警告来自zone.js

  

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看https://xhr.spec.whatwg.org/

我正在使用Angular 2,现在我更新到Angular 4.我也使用了kendo UI Angular控件。我想知道这是因为角度版本更新还是因为我的服务实现。以下是服务代码段。

post(url: any, data: any) {


    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    try {

        return this.http.post((new RequestOptions({ headers: headers }))).do(data => {

            if (data != null && data.statusText != "No Content") {
                console.log("Response Data - ", data.json());

            }

        });
    }
    catch (e) {
        console.log(e);
        return null;
    }
}

我知道这是因为尝试从浏览器进行同步AJAX调用。但不知道如何在角度4中修复它。

1 个答案:

答案 0 :(得分:0)

我在Angular 5应用程序上遇到此错误(主线程上的同步XMLHttpRequest已弃用... ),因为我愚蠢地试图从源代码文件夹而不是 dist 文件夹。我在nodejs上使用koa 2作为Web服务器,我的角度应用程序源代码位于名为 public 的文件夹中,所以我有(在 index.js - 由nodejs运行的文件):

app.use(serve(__dirname + '/public'));

而不是:

app.use(serve(__dirname + '/public/dist')); 

在启动服务器之前,我从 / public 文件夹运行 ng build ,该文件夹在 / public / dist 中构建Angular应用程序。重点是错误的原因和错误信息是完全无关的。