【问题标题】:Catching Google Maps API JavaScript RefererNotAllowedMapError捕获 Google Maps API JavaScript RefererNotAllowedMapError
【发布时间】:2021-09-28 07:42:52
【问题描述】:

我正在使用 Google Maps API JavaScript 库,我正在寻找如何捕获 RefererNotAllowedMapError 的建议?我对我的密钥使用了应用程序限制,我需要确保我正确处理了这个错误,但我不明白如何才能捕捉到它。

https://developers.google.com/maps/documentation/javascript/error-messages#referer-not-allowed-map-error

我观察到错误是在脚本加载后发生的。该脚本已成功加载,然后稍后出现错误。 我正在动态加载脚本,加载时没有发生错误 - 未输入 catch 块,打印成功加载。

this.loadScript(`https://maps.googleapis.com/maps/api/js?libraries=places&key=${key}&language=${language}`)
      .then(() => {
        console.log('loaded successfully');
      })
      .catch((error) => {
        console.log('error on loading');
      });

loadScript(url: string) {
    return new Promise((resolve, reject) => {
      const script = this.renderer.createElement('script');
      script.type = 'text/javascript';
      script.src = url;
      script.text = '';
      script.async = true;
      script.defer = true;
      script.onload = resolve;
      script.onerror = reject;
      this.renderer.appendChild(this.document.body, script);
    });
  }

那么,发生这个错误后,当尝试使用库中提供的任何对象及其方法时,例如:

 const autocompleteService = new google.maps.places.AutocompleteService();
autocompleteService.getPlacePredictions(request, (predictions, status) => {
        if (status === google.maps.places.PlacesServiceStatus.ZERO_RESULTS) {
          resolve([]);
        } else if (status === google.maps.places.PlacesServiceStatus.OK) {
          resolve(predictions);
        } else {
          reject(new Error(status));
        }
      });

我没有收到任何错误,但从未调用过回调,所以在这里我也无法进行任何处理。

非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 google-places-api


    【解决方案1】:

    在脚本 url 中使用回调参数。 loadScript 可能会在整个 API 加载之前解析。

    或者,尝试使用@googlemaps/js-api-loader。

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 2016-06-01
      • 2017-04-26
      • 1970-01-01
      • 2016-10-26
      • 2016-11-19
      • 1970-01-01
      • 2018-04-26
      • 2018-09-13
      相关资源
      最近更新 更多