Javascript 角度2未捕获语法错误:意外标记<;
我已经看到这个问题在Angular 2中相当普遍,但我没有看到任何有助于解决我的特殊情况的东西 具体地说,我正在创建一个应用程序,它从一个API(需要一个API密钥)中提取数据,其中的结果是XML格式的。我试图做的是在用户输入搜索参数时调用API,让API返回结果,然后最终在同一屏幕上显示结果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
但是,我不断遇到与您提到的相同的“意外标记”,结果是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())