【问题标题】:Google Places API - Uncaught SyntaxError: Unexpected token : [duplicate]Google Places API - 未捕获的 SyntaxError:意外的令牌:[重复]
【发布时间】:2017-05-06 21:18:57
【问题描述】:

我已经研究了一个多小时,但找不到有效的解决方案。

我的js:

 var googleUrl = 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=<MY KEY>'

  $.ajax({
      type: 'GET',
      url: googleUrl,
      dataType: 'jsonp',
      success: function(response)    {

          console.log(response)
       },
      error: function(response)    {
          console.log(response);
      }

  })

我看到了this question,它建议了一个“回调方法” - 我仍然无法弄清楚为什么会出现错误:Uncaught SyntaxError: Unexpected token :

我看到它已被标记为重复 - 但正如我已经指出的那样,我已经尝试了其他帖子中的所有内容,但如果不使用 JSONP,我仍然无法访问工作。关于如何解决问题的建设性反馈会很有用。

感谢任何建议!

更新 - 显然我的代码中的密钥不是“我的密钥”。

【问题讨论】:

  • 是的,我确定这是我的代码。
  • 我刚刚用我的 API 密钥尝试了你的代码,当我将内容类型更改为 json
  • 回复是JSON,而不是JSONP。它们不可互换。将dataType: 'jsonp' 更改为dataType: 'json'然而 会导致No Access Control Header 错误,因为您调用的URL 在响应中没有CORS 标头。因此,您不能向该域发出 AJAX 请求。您需要改为在服务器端进行
  • @legotin 哈哈,我想他只是把它写成&lt;MY KEY&gt;,而不是在网上发布他的 API 密钥!!我确信在他的代码中他有真正的钥匙;)
  • @RoryMcCrossan - 这不应该被标记为重复,它们是相似的问题,但由非常不同的问题引起

标签: javascript jquery json jsonp google-places-api


【解决方案1】:

您的语法错误是由于 googleUrl 使用您指定为 dataType 参数的 JSON 而不是 JSONP 响应。

所以,只需将 dataTypejsonp 更改为 json

您可以通过here了解更多关于这种格式的信息。

【讨论】:

  • 如果我使用 JSON,我会收到此错误 XMLHttpRequest cannot load https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&amp;types=geocode&amp;language=fr&amp;key=&lt;MY KEY&gt;. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
  • 或许,您应该将 GET 参数 key&lt;MY KEY&gt; 更改为真正的密钥。
  • 是的,这是一个全新的错误。 @Legotin 回答了你原来的问题,你应该接受他的回答
  • @legotin duh。显然我的代码中有一个密钥。我没有在这个公共论坛上发布我的密钥。这不是问题,错误也不表示问题。
  • @legotin - 你为什么一直提到&lt;MY KEY&gt;(首先在问题下方的评论中,现在在这里)?这正是某人应该如何表示他们的密钥,而不是实际密钥(这种情况一直发生)。
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 2015-08-19
  • 2016-04-04
  • 2013-10-08
相关资源
最近更新 更多