热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HttpClient尝试将有效负载解析为json-HttpClienttriestoparsepayloadtojson

Imworkingonaprojectwhichhasrailsapiasaback-endandangularasafrontend.Inonepartic

I'm working on a project which has rails api as a back-end and angular as a front end. In one particular point I need to make a text/plain call. Even though I set the content-type to 'text/plain', HttpClient tries to parse payload to json. I can't figure out why it behaves like that.

我正在开发一个项目,它有一个rails api作为后端,有角度作为前端。在一个特定点上,我需要进行文本/普通呼叫。即使我将content-type设置为'text / plain',HttpClient也会尝试将有效负载解析为json。我无法弄清楚为什么它会像那样。

Rails back-end:

Rails后端:

def getTranslations
  render plain: 'some plain text'
end

Angular Client:

角度客户:

headers = new HttpHeaders({
  "Content-Type": "text/plain",
  "Accept": "text/plain"
});


this.http.get('http://localhost:3000/getTranslations', { headers: this.headers })
 .map((res:Response) => {
   console.log(res);
   return res.text()
 })
 .subscribe(
   res => {
     console.log(res);
   },
   err => {
     console.log(err);
   }
 )

Response:

响应:

"Http failure during parsing for http://localhost:3000/getTranslations" Unexpected token s in JSON

“解析http:// localhost:3000 / getTranslations期间的Http失败”JSON中出现意外的令牌

Thanks.

谢谢。

1 个解决方案

#1


1  

After looking at angular.io documentation I have found the answer.

看完angular.io文档后,我找到了答案。

Instead of making request by http.get I have changed the method call to

我没有通过http.get发出请求,而是将方法调用更改为

this.http.get('http://localhost:3000/getTranslations', { responseType: 'text'} )
  .map((res:string) => {
    console.log(res);
    return res
  })
  .subscribe(
    res => {
      console.log(res);
    },
    err => {
      console.log(err);
    }
  )

推荐阅读
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • Apollo入门指南
    Apollo是一个分布式配置中心,由服务端和客户端组成,支持配置的集中管理和动态更新。 ... [详细]
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
  • 本文探讨了在Node.js环境中如何有效地捕获标准输出(stdout)的内容,并将其存储到变量中。通过具体的示例和解决方案,帮助开发者解决常见的输出捕获问题。 ... [详细]
  • Linux环境下的PHP7安装与配置指南
    本文详细介绍了如何在Linux操作系统中安装和配置PHP7,包括检查当前PHP版本、升级PHP以及配置MySQL支持等步骤,适合后端开发者参考。 ... [详细]
  • 本文详细介绍了Keycloak框架中UserRepresentation类下的isEnabled()方法的功能与应用,并通过多个实际代码示例说明其在用户管理中的具体实现。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文主要解决了在编译CM10.2时出现的关于Samsung Exynos 4 HDMI HAL库中SecHdmiV4L2Utils.cpp文件的编译错误。 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 解决宝塔面板Nginx反向代理缓存问题
    本文介绍如何在宝塔控制面板中通过编辑Nginx配置文件来解决反向代理中的缓存问题,确保每次请求都能从服务器获取最新的数据。 ... [详细]
  • 本文探讨了在使用Apache HttpClient 4.x(作为commons-httpclient 3.x的后续版本)时,如何配置默认的HttpContext,以确保每次执行请求时无需显式传递上下文。 ... [详细]
author-avatar
StormyXin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有