0

我正在尝试使用 TomTom maps api 来获取位置。

我的功能:

  getLocationAddress(lat: number, lon: number) {
    const url = `${baseUrl}search/${versionNumber}/reverseGeocode/${lat},${lon}.json/?key=${apiKey}`;
    const headers = new HttpHeaders({
      "Content-type": "application/json",
      "Access-Control-Allow-Methods": "GET,OPTIONS,POST",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers":
        "Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Origin,Authorization,Content-Type",
    });
    const observable = this.http.get(url, { headers: headers }); 
    return observable;
  }

网址是正确的,我已经提供了上面的标题。我无法克服这个错误:

Access to XMLHttpRequest at <url> has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response
      

TomTom 是第 3 方 api 服务器。被路由到正确的位置,在新窗口中粘贴链接时,我可以在浏览器上看到服务器的响应

4

1 回答 1

1

根据错误消息,您的标头配置错误,特别是“授权”标头属性。

您可能想使用他们的 SDK 和/或 JS 库,它会为您设置标题。

您需要提供 API 密钥,否则 CORS 策略将拒绝请求,如他们的示例所示https://developer.tomtom.com/maps-sdk-web-js/functional-examples#examples,code,vector-map .html

于 2020-07-30T16:33:57.827 回答