【问题标题】:Getting cross-origin error出现跨域错误
【发布时间】:2017-05-23 21:09:55
【问题描述】:

我正在尝试发出以下 ajax 请求:

                                    $.ajax({
                                    method: "GET",
                                    url: http://google.com,
                                    dataType: "json",
                                    async: false,
                                    cache: false,
                                    success: function(data) {
                                    alert("AJAX call successfully 
                                    completed");}});

但正如预期的那样,我收到“跨源”错误。有什么方法可以绕过这种安全性并在没有此错误的情况下进行 ajax 调用,即使 ajax 调用是从不同的域进行的。

感谢任何回应。

【问题讨论】:

  • 是的,使用代理服务器。在您的域中创建一个服务器/api并向该服务器发出请求,服务器将获取跨域数据并将您发送回
  • 不更改您尝试查询的服务器(我认为它不是 Google) - 不。您可以查看 JSONP 请求是否由他们处理,否则您将不走运,除非您可以让他们打开跨域策略。 @PriyeshKumar 的建议可能会奏效 - 但感觉非常卑鄙。
  • @thebluefox 对,!。制作小 api 几乎不需要 25 行 ^_^
  • @PriyeshKumar - 我没有说这很难,或者会创建很多代码。我说这是不正当的 - 如果一个网站不提供 API,并且不允许跨域请求 - 那么很明显他们不希望以这种方式使用他们的服务。

标签: cross-domain


【解决方案1】:

您可以使用浏览器插件,允许您从任何来源请求任何带有 ajax 的网站

Chrome 示例: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

【讨论】:

  • 如何强制用户安装它?
  • 您可以制作一个 html 错误消息,告诉用户安装它;)
  • 如果他们不这样做?
  • 那么javascript会按预期抛出“Cross-Origin”错误
  • 很公平。您的解决方案适用于桌面用户。移动用户呢?
猜你喜欢
  • 1970-01-01
  • 2021-11-26
  • 2014-11-27
  • 1970-01-01
  • 2012-04-03
  • 2016-03-21
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多