javascript - 使用 xhr 请求 Google Place API 遇到 CORS 问题

标签 javascript google-api xmlhttprequest cors

在我的网页上,我有一些 JavaScript 代码来查询 Google Place API (GET) 以获得响应。我的代码如下所示:

// Sending XHR request
var url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=KPMG+Seattle&key=<<MY_KEY>>';

var xhr = createCORSRequest('GET', url);

xhr.setRequestHeader('Access-Control-Allow-Headers', '*');
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');

xhr.send();

//**********************//

// Create the XHR object.
function createCORSRequest(method, url) {
  var xhr = new XMLHttpRequest();

  if ("withCredentials" in xhr) {

    // XHR for Chrome/Firefox/Opera/Safari.
    xhr.open(method, url, true);

  } 
  else if (typeof XDomainRequest != "undefined") {

    // XDomainRequest for IE.
    xhr = new XDomainRequest();
    xhr.open(method, url);
  } 
  else {
    // CORS not supported.
    xhr = null;
  }
  return xhr;
}

我在浏览器中运行此本地 HTML 文件,并收到 CORS 错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'null' is therefore not allowed access. The response had HTTP status code 405.

我想知道问题是什么(我在请求 header 中添加了 Access-Control-Allow-Origin)?
根据Google Tutorial这应该足以提出请求吗?

请帮忙指出我做错的地方......谢谢!

最佳答案

请看这篇文章XMLHttpRequest Origin null is not allowed

基本上,如果您从本地文件运行,则需要禁用一项安全功能才能允许不同来源的 XHR。

请参阅帖子中的第一个答案。

关于javascript - 使用 xhr 请求 Google Place API 遇到 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674796/

相关文章:

google-chrome - 使用Cookie从Chrome扩展程序发送XHR请求

javascript - 从 PHP 获取 JSON 并以 HTML 显示

Javascript:除了使用 event.preventDefault() 之外,还有什么解决方法可以让 Chrome for Android 触发 touchmove 和 touchend 事件监听器?

javascript - 光滑网格总计

html - 无法使用 Gmail API + rails 在 HTML 中显示嵌入式图像

javascript - 无法访问 JSON 数据并出现错误 404 (TMDB)?

javascript - 如何创建一个表单,单击时输入中的文本会消失? (用于饲料燃烧器形式)

node.js - 通过 google http rest api 发送电子邮件

android - 要求用户在没有 GoogleAPI 或 Google Play 服务的情况下在 android 中启用 GPS 定位

Javascript 意外的 token 非法