【发布时间】:2017-06-08 13:25:54
【问题描述】:
我正在尝试使用 Angular 2 的 HTTP.get() 方法从本地主机发出 Google Maps API JavaScript 请求。在我的请求中,我需要添加标题并且我尝试这样做,但我收到了这个错误通知:
https://maps.googleapis.com/maps/api/place/textsearch/json?query=Santa+Cruz&key=MY_KEY。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:51268” 访问。
我想要做的就是输入一个城市名称并让响应返回一个 JSON 对象。有人可以解释一下我在这里做错了什么吗?
import {Injectable} from '@angular/core';
import {Http, Headers, RequestOptions} from '@angular/http';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class SearchService {
dataHere: Object;
errorMessage: String;
constructor(private http: Http) { }
getPlaces(name: String): Observable<any> {
const url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=Santa+Cruz&key=MY_KEY";
let headers = new Headers({ 'Access-Control-Allow-Origin': '*','Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.get(url, options)
.map(r => this.dataHere = r.json())
.catch((error:any) => Observable.throw(error.json().error));
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
}
Web Inspector 中列出的错误:
【问题讨论】:
标签: javascript google-maps angular google-api cors