angular - 无法在 Angular 5 中使用 HttpClient

标签 angular angular-httpclient

我尝试使用 Angular 5 中的 HTTPClient 进行 api 调用,但收到以下错误:

DOMException: Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be changed for synchronous requests made from a document. at Observable._subscribe (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:229447:34) at Observable._trySubscribe (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:19762:25) at Observable.subscribe (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:19750:93) at Object.subscribeToResult (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:24782:27) at MergeMapSubscriber._innerSub (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:50664:38) at MergeMapSubscriber._tryNext (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:50661:14) at MergeMapSubscriber._next (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:50644:18) at MergeMapSubscriber.Subscriber.next (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:24556:18) at ScalarObservable._subscribe (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:55704:24) at ScalarObservable.Observable._trySubscribe (http://cw.local/assets/js/dist/cw.angular.min.1522911179.js:19762:25)

代码非常基础。然而,只需提一下,这是一个使用 NgUpgrade 模块的混合应用程序。

angularjs version 1.5.x angular version 5.1.3

import {Injectable} from "@angular/core";
import {HttpClient} from "@angular/common/http";
import {MyService} from "./my-service";
@Injectable()
export default class ResultsService {
   constructor( private http: HttpClient, private service: MyService) {
}
   purchaseByExtractId(extractId, address) {
       let payload = {
           session_key: key,
           admin_district: address
       };

       return this.http.post(this.service.getUrl(), {postData: payload}).toPromise();
   }

   purchaseExtractSummary(key) {
      return this.http.post(this.service.getUrl(), {postData: {session_key: key}}).toPromise();
   }
}

编辑:我也尝试删除 toPromise 并订阅。它仍然失败并出现相同的错误

最佳答案

为了其他人的利益,我在这里回答我自己的问题。 原因是 Onikute 在原始帖子的评论之一中提到的。我的页面上包含一个跟踪库,它正在进行同步调用,并且弄乱了 Angular HTTP 请求。不久前就发现了这一点,但忘记更新答案。 谢谢Onikute提醒。

关于angular - 无法在 Angular 5 中使用 HttpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666138/

相关文章:

html - Angular 动态行跨度

sockets - 想要无限期观察随时间变化的阵列

angular - 错误 TS5023 : Unknown compiler option 'compilerOptions'

javascript - 如何从 Angular 6 中的 HttpErrorResponse 获取正文?

angular - HttpInterceptor 处理 401 错误不返回 Observable

javascript - 在子文件夹中运行的 Angular 7 中的路由无法正常工作

javascript - 如何在媒体查询语法里面使用ng-deep?

angular - 如何捕捉 Observable.forkJoin(...) 中的错误?

javascript - Angular 4 Http POST 不工作

rxjs - 选择哪个 RxJS 操作符来处理 HTTP 错误 : tap or catchError?