解析响应期间的Angular 2 HttpErrorResponse

时间:2018-03-22 10:52:01

标签: angular

Http get请求返回和xsd文件内容,下面是代码片段

headers = headers.append('Content-Type', 'text/plain');
        headers = headers.append('responseType', 'text');
        headers = headers.append('Accept', 'application/octet-stream');

retun this.http.get(data[0]._links['http://identifiers.emc.com/content-download'].href, { headers: headers }))
      .map((response: Response) => {
        let data: any;
        data = response;
      return content;
      })

代码失败并显示错误

"语法错误:意外的令牌< JSON位于JSON.parse" 在解析"请求URL"

期间发生Http失败

我添加了" requestType:text"到标题,我错过了什么,为什么它试图解析认为响应是JSON?

以下是请求和响应标头的快照

Response header Request header

以下是回复样本

 <!--
      ~ Copyright (c) OpenText Corporation. All Rights Reserved.
      -->
    <xs:schema elementFormDefault="qualified" targetNamespace="urn:eas-samples:en:xsd:phonecalls.1.0" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="Calls">
            <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                    <xs:element name="Call">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="SentToArchiveDate" type="xs:date"/>
                                <xs:element name="CallStartDate" type="xs:dateTime"/>
                                <xs:element name="CallEndDate" type="xs:dateTime"/>
                                <xs:element name="CallFromPhoneNumber">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:positiveInteger">
                                            <xs:minInclusive value="1"/>
                                            <xs:totalDigits value="11"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element

3 个答案:

答案 0 :(得分:0)

我认为您可以使用模块解析def nearest_ind(items, pivot): time_diff = np.abs([date - pivot for date in items]) return time_diff.argmin(0) 响应或使用将xml转换为xml的模块。

以下是您可以使用的2个模块:

答案 1 :(得分:0)

你必须设置responseType,因为默认的是json,你只需要指定请求头: 看一下HttpRequest文档:https://angular.io/api/common/http/HttpRequest 响应类型可以是

  

&#39; arraybuffer&#39; | &#39;斑点&#39; | &#39; JSON&#39; | &#39;文本&#39;

我认为你需要这样:

this.http.get(data[0]._links['http://identifiers.emc.com/content-download'].href, { headers: headers, responseType: 'text' }))
  .map((response: Response) => {
    let data: any;
    data = response;
  return content;
  })

答案 2 :(得分:0)

我也有类似的问题,因为我的解决方案是处理角度和api方面的响应类型。

return this.http.post(this.resourceUrl+'/imageUpload', copy, {responseType: 
'text'})

爪哇

@PostMapping(value = "/questions/imageUpload",produces = { "text/plain" })