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

角HttpClient post请求类型

祁嘉木
2023-03-14
/** POST: add a new hero to the database */
addHero (hero: Hero): Observable<Hero> {
  return this.http.post<Hero>(this.heroesUrl, hero, httpOptions)
    .pipe(
      catchError(this.handleError('addHero', hero))
    );
}

但我很困惑为什么Observable会在POST请求中返回英雄数据,或者根本不是成功代码的数据。我理解为什么GET请求会使用类型断言,但不太明白这是如何工作的。

共有1个答案

柯冯浩
2023-03-14

耶!如果是这样,则post将返回一个成功代码。我不知道文件中这样提到的实际原因是什么,但我会写出我理解的。(很难写在评论中:)

POST请求的响应将取决于如何实现API。例如,您的数据库为任何POST请求设置了一些默认值,例如createDatehero,您希望在您的angular应用程序中使用createDate。你会怎么做?您将从API发送英雄数据。

就文档中所包含的内容而言,它们使用的是mock-api。如果要记录响应,您将看到204的状态。默认情况下,在此状态下,不发送正文。但是如果您将模拟服务配置为:

HttpClientInMemoryWebApiModule.forRoot(InMemHeroService, {put204: false, post204: false})
 类似资料:
  • TP5提供了很多请求判断的方法,如下: // 是否为 GET 请求 $request->isGet(); // 是否为 POST 请求 $request->isPost(); // 是否为 PUT 请求 $request->isPut(); // 是否为 DELETE 请求 $request->isDelete(); // 是否为 Ajax 请求 $request->isAjax();

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1722

  • TP6提供了很多请求判断的方法,如下: // 是否为 GET 请求 $request->isGet(); // 是否为 POST 请求 $request->isPost(); // 是否为 PUT 请求 $request->isPut(); // 是否为 DELETE 请求 $request->isDelete(); // 是否为 Ajax 请求 $request->isAjax();

  • 获取请求类型 在很多情况下面,我们需要判断当前操作的请求类型是GET、POST、PUT、DELETE或者HEAD,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。 请求对象Request类提供了下列方法来获取或判断当前请求类型: 用途 方法 获取当前请求类型 method 判断是否GET请求 isGet 判断是否POST请求 isPost 判断是否

  • 我想连接到http://api.themoviedb.org,以便执行GET请求。由于我使用的浏览器(离子服务-l)我得到CORS错误。为了避免CORS错误,我尝试使用JSONP,但没有成功。 以下是我所做的: > 从'@角/公共/超文本传输协议'导入{HttpClientModuelHttpClientJsonpModuel}; ... 导入:[BrowserModuelIonicModule.