【问题标题】:How to solve ERROR No 'Access-Control-Allow-Origin'如何解决 ERROR No 'Access-Control-Allow-Origin'
【发布时间】:2017-04-03 17:06:05
【问题描述】:

我使用 AJAX-Jquery 帖子来计算使用 Google API 从 A 到 B 的时间。

但我收到错误“XMLHttpRequest 无法加载 https://maps.googleapis.com/maps/api。请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不允许访问 Origin 'null'。"

我已经阅读了很多帖子并尝试了几种解决方案。他们都没有工作。

  1. 在我的 .php 页面中使用不同的标题变体

    header("Access-Control-Allow-Origin", "*");
    header('Access-Control-Allow-Credentials: true');
    
  2. 修改我的 .htaccess 文件:

    Header set Access-Control-Allow-Origin "*"
    
  3. 安装Chrome扩展Allow-Control-Allow-Origin

第三个选择允许我测试我的代码,但不是一个真正的解决方案。 有没有人成功解决了这个问题?

【问题讨论】:

  • access-control-allow-origin 标头必须设置在对您的请求的响应中。因此,由于https://maps.googleapis.com/maps/api 端点没有设置它,因此您无法以您尝试的方式使用跨域 AJAX 请求它。
  • 我使用了 [here][1] 中的解决方案,它奏效了。 [1]:developers.google.com/maps/documentation/javascript/…

标签: php ajax google-api http-headers


【解决方案1】:

你需要的是

JSONP

JSONP 或“带填充的 JSON”是一种通信技术,用于在 Web 浏览器中运行的 JavaScript 程序中,以从不同域中的服务器请求数据,由于同源策略,典型的 Web 浏览器禁止使用这种技术。

在 AJAX 调用中的某处,您将确保 dataSetjsonp

【讨论】:

  • 我试过 JSONP 但我得到了这个错误“Uncaught SyntaxError: Unexpected token:”。
猜你喜欢
  • 2017-12-29
  • 2016-10-22
  • 2017-07-25
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 2019-03-18
  • 2022-10-27
相关资源
最近更新 更多