1

我已经阅读了几乎所有提到这个问题的帖子。大多数答案是“改用 Javascript API”。我不认为这是一个有效的答案。我正在尝试在 Google 的 API 控制台上设置引用者,以便我可以在本地和我的开发服务器上进行测试。

这是我从 Google API 控制台获取的 API 密钥: 在此处输入图像描述

这是我的要求:

Request URL:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=a&sensor=false&key=AIzaSyABBKjubUcAk69Kijktx-XXXXXXXXXX
Accept:*/*
Origin:http://localhost:5000
Referer:http://localhost:5000/users/profile/edit/location/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1

我收到了众所周知的错误:

Origin http://localhost:5000 is not allowed by Access-Control-Allow-Origin.

我也尝试过“任何引用者”API 密钥,但没有成功。这个referers不是为了允许这种AJAX调用而设置的吗?我在 Gunicorn 服务器上运行 Django 应用程序,它可能与“5000”端口有关吗?

4

1 回答 1

1

好的,还有其他解决方案应该有效:

尝试使用 ssh 隧道。

如果您使用localtunnel,设置非常简单。

  • 第 1 步:sudo gem install localtunnel在终端中运行
  • 第 2 步:在任何端口上运行本地 Web 服务器!假设您在端口 8080 上运行 Apache。
  • 第 3 步:现在运行 localtunnel 并将端口传递给共享。第一次运行 localtunnel 时,您必须指向一个公共 SSH 密钥。如果您需要帮助,请查看自述文件。

这是一个例子: $ localtunnel -k ~/.ssh/id_rsa.pub 8080

您应该会看到如下内容:端口 8080 现在可以从http://8bv2.localtunnel.com公开访问...

您现在可以将此 URI 放入 Google 控制台。

但请注意,当您使用此解决方案时,您的 localhost 是公开可用的。

于 2012-08-16T00:19:52.670 回答