接口设置produces=text/plain仍报JSON Unexpected Token错误如何解决
报错根因
你使用的前端HTTP客户端(从语法判断为Angular HttpClient)默认将所有响应按JSON格式解析,即使后端返回Content-Type: text/plain,客户端未主动指定响应类型的情况下,仍会尝试将纯文本内容转为JSON,你的UML文本中包含@字符不符合JSON语法,因此抛出解析错误。
修复步骤
- 修改
generateUML方法,给GET请求添加responseType配置,指定接收纯文本响应,跳过JSON解析逻辑:
generateUML(params) { // 新增第二个配置参数,指定响应类型为文本 return this.httpClient.get('http://localhost:8081/bruml/export/'+ params, { responseType: 'text' }); }
- 修改请求回调的赋值逻辑,指定
responseType: 'text'后返回的响应直接是纯文本字符串,不需要再取data属性:
this.httpService.generateUML(params).subscribe((response: string) => { // 直接赋值即可,不需要访问response.data this.umlText = response; });
内容的提问来源于stack exchange,提问作者anon comp
相关产品推荐
相关产品推荐

