当前位置: 首页 > 知识库问答 >
问题:

角度6:如何在进行http调用时将响应类型设置为文本

洪高扬
2023-03-14
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { ProductSearch } from '../_models/product-search';
import { ProductView } from '../_models/product-view';
import { Observable } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { ErrorHandlerService } from './error-handler.service';
import { Category } from '../_models/category';


@Injectable({
  providedIn: 'root'
})
export class OrderService {

  constructor(private http: HttpClient, private errorHandlerService: ErrorHandlerService) { }

addToCart(productId: number, quantity: number): Observable<any> {
    const headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');
    console.log("--------order.service.ts----------addToCart()-------productId:"+productId+":------quantity:"+quantity);
     return this.http.post<any>('http://localhost:8080/order/addtocart', 
              { dealerId: 13, createdBy: "-1", productId: productId, quantity: quantity}, 
              {headers: headers})
              .pipe(catchError(this.errorHandlerService.handleError));
    }
}
import { Injectable } from '@angular/core';
import { HttpErrorResponse, HttpResponse } from '@angular/common/http';

import { Observable, throwError } from 'rxjs';
import { catchError, retry } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class ErrorHandlerService {

  constructor() { }

  public handleError(error: HttpErrorResponse) {
    if (error.error instanceof ErrorEvent) {
      // A client-side or network error occurred. Handle it accordingly.
      console.error('An error occurred:', error.error.message);
    } else {
      // The backend returned an unsuccessful response code.
      // The response body may contain clues as to what went wrong,
      console.error(
        `Backend returned code ${error.status}, ` +
        `body was: ${error.error}`);
    }
    // return an observable with a user-facing error message
    return throwError(
      'Something bad happened; please try again later.');
  };

}

共有1个答案

钱雅逸
2023-03-14

消除错误:

“text”“类型不能赋值到”json“”类型。

阅读Angular HTTP指南并使用

import { HttpClient, HttpHeaders } from '@angular/common/http';
.....
 return this.http
        .post<string>(
            this.baseUrl + '/Tickets/getTicket',
            JSON.stringify(value),
        { headers, responseType: 'text' as const }
        )
        .map(res => {
            return res;
        })
        .catch(this.handleError);
 类似资料:
  • 问题内容: 我有返回一个observable的服务,该服务向我的服务器发出一个http请求并获取数据。我想使用这些数据,但是我总是最终得到。有什么问题? 服务内容 : 零件: 问题答案: 原因: 这是因为您正在执行异步操作。意味着完成该方法将需要一些时间(主要取决于您的网络速度)。 因此,让我们看一下http调用。 实际发出(“触发”)请求后,与您的http请求将 等待 响应。等待期间,javas

  • 问题是: 我有一个拦截器: 它在角5中工作,但现在我已经迁移到6,这不再工作了。 它表示属性do不存在于可观察类型上。 我还尝试从这个线程实现解决方案:LINK也不起作用。 本主题说这是rxjs更改的结果。进行建议的更改后,问题仍然存在(现在使用“点击”而不是“执行”) 这里是导入部分: 注意:注释行也被尝试过。

  • 问题内容: 我是Go的新手,我正在尝试构建一个简单的HTTP服务器。但是我在JSON响应中遇到了一些问题。我编写了以下代码,然后尝试邮递员发送一些JSON数据。但是,我的邮递员总是得到空响应,而is 。然后,我在http://www.alexedwards.net/blog/golang-response- snippets#json中 检查了一个示例。我复制并粘贴了示例,并且效果很好。但是我看不

  • 问题内容: 我希望我的div调整其高度以使其始终等于其宽度。宽度为百分比。当父母的宽度减小时,盒子应通过保持其纵横比减小。 CSS是怎么做到的? 问题答案: 要实现所需的功能,可以使用viewport-percentagelength 。 这是我在jsfiddle上制作的一个简单示例。 HTML: CSS: 我敢肯定还有很多其他方法可以做到这一点,但是这种方法对我来说似乎是最好的。

  • 我试图用量角器模拟我网站上的用户故事。 用户必须输入使用自动完成的输入。在现实生活中,用户必须在输入中键入一些文本,然后用鼠标或更自然的向下键选择正确的命题。 问题是我似乎不能用量角器来模拟。element.sendKeys不允许您这样做。我已经尝试了十几种不同的方式,它最多只能产生不可预测的结果。 因此,我想直接根据我的输入操作ng模型。有没有办法从量角器访问元素的作用域并在其上调用函数/设置属

  • 问题内容: 好的,因此,我正在设置自己的XML序列化(我知道那里还有其他东西,甚至Java中内置了一些东西,但是我自己学习来做,因为可以使用它非常棒)。我已经序列化了。我目前正在进行反序列化(读取XML文件并基于文件中的数据组装对象),并且在设置通用类型时遇到问题。经过广泛研究,我弄清楚了如何获取类的泛型类型,以便在序列化时可以编写它们,但是我不知道如何执行此操作: 我已经在C#中看到了一些答案,