Javascript 角度2未捕获语法错误:意外标记<;

Javascript 角度2未捕获语法错误:意外标记<;,javascript,api,angular,jsonp,unexpected-token,Javascript,Api,Angular,Jsonp,Unexpected Token,我已经看到这个问题在Angular 2中相当普遍,但我没有看到任何有助于解决我的特殊情况的东西 具体地说,我正在创建一个应用程序,它从一个API(需要一个API密钥)中提取数据,其中的结果是XML格式的。我试图做的是在用户输入搜索参数时调用API,让API返回结果,然后最终在同一屏幕上显示结果 但是,我不断遇到与您提到的相同的“意外标记”,结果是XML格式的,但我在您的服务底部看到了以下代码: return this.jsonp .get(queryString, new

我已经看到这个问题在Angular 2中相当普遍,但我没有看到任何有助于解决我的特殊情况的东西

具体地说,我正在创建一个应用程序,它从一个API(需要一个API密钥)中提取数据,其中的结果是XML格式的。我试图做的是在用户输入搜索参数时调用API,让API返回结果,然后最终在同一屏幕上显示结果


但是,我不断遇到与您提到的相同的“意外标记”,结果是XML格式的,但我在您的服务底部看到了以下代码:

    return this.jsonp 
      .get(queryString, new Headers({ "Content-type":
      "application/xml", "Accept": "application/xml", 
      "Access-Control-Allow-Origin": "*" }))
      .map((res: Response) => res.json())
      //.map(res => console.log("TEST"));
      //.map((res) => {
        //return
      //});;
}
我不确定您是否能够以这种方式将响应映射到json——我认为它实际上期望json从一个文本映射到一个您可以使用的类型化对象


因此,问题是您试图将xml解析为json——因此错误是它无法解析第一个“谢谢!让我试试看。是的,我想这在某种程度上是我问题的根源。对XML解析器或实现解析器本身的方法有什么建议吗?不幸的是,我没有,我还不需要查询XML服务端点:(我认为最好的做法是从npm中获取一个包,将XML转换为json,然后在地图中调用它:)找到这个,可能值得一试:谢谢!!现在检查一下,感谢您对res:Response映射的编辑。会让你知道这是否有效!
import { Inject, Injectable } from '@angular/core';
import { Http, Headers, Response, Jsonp } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import '../rxjs-operators';

import { AppConfig } from './app-config';
import { Search } from './search';

let api = AppConfig.baseUrls.api;
let url = AppConfig.baseUrls.base;

@Injectable() 
export class ZillowSearchService {
  public state: string;
  constructor ( @Inject(Jsonp) private jsonp: Jsonp) {
     //this.http = http;
  }
  protected results: any;

  searchZillow(statevar: any) {
    console.log("Before" + statevar);
    var queryString = url + `?zws-id=${api}&state=${statevar}&callback=JSONP_CALLBACK`;

    return this.jsonp 
          .get(queryString, new Headers({ "Content-type":
"application/xml", "Accept": "application/xml", 
          "Access-Control-Allow-Origin": "*" }))
          .map((res: Response) => res.json())
          //.map(res => console.log("TEST"));
          //.map((res) => {
            //return
          //});;
    }
  }
    return this.jsonp 
      .get(queryString, new Headers({ "Content-type":
      "application/xml", "Accept": "application/xml", 
      "Access-Control-Allow-Origin": "*" }))
      .map((res: Response) => res.json())
      //.map(res => console.log("TEST"));
      //.map((res) => {
        //return
      //});;
}
.map((res: Response) => res.json())