【问题标题】:JQuery - Cross Domain Ajax call for JSON file without JSONP [duplicate]JQuery - 没有 JSONP 的 JSON 文件的跨域 Ajax 调用 [重复]
【发布时间】:2013-07-11 12:05:50
【问题描述】:

我正在尝试访问来自不同域的 URL,比如说 www.url-one.com,它只提供 JSON 文件而无法提供一个 JSONP 文件。这对我使用 JQuery 的 ajax() 函数不起作用。

我的代码如下所示:

    $.ajax({
        url : 'http://url-two.com'+sample,
        async : false,
        dataType : 'jsonp',
        crossDomain: true,
        success : function(data) {
            // Some Other Code
        }
     }

如何在不依赖 JSONP 的情况下解决同源策略? 在此先感谢 - 我在代理方面遇到了重大问题,但我听说这是可能的。

【问题讨论】:

  • 我真的需要详细的帮助来设置代理,因为我以前从未这样做过
  • 如果您无权访问远程服务器,则无法绕过同源策略。
  • 另外,还有很多关于在本站设置代理页面的问题。您在什么服务器上运行以及使用什么语言?如果没有这些信息,我们将无法为您提供帮助。

标签: javascript jquery ajax json same-origin-policy


【解决方案1】:

有很多方法可以做到这一点,下面我会提到我过去使用过的 3 个。

最常见的是使用Cross-Origin Resource Sharing (CORS).

基本上,托管 json 文件的服务器(我们称之为 server1)需要正确设置 Access-Control-Allow-Origin 标头以允许其他服务器(我们称之为 server2)访问它。

如果您不想或不能使用 CORS,您可以执行以下 2 项之一:

1:在server2上使用re-write规则将某个路径的流量从server2重定向到server1。

2:使用 server2 上的服务器端代理来获取 json 文件。

设置这些东西完全取决于您的服务器设置,我无法帮助您。

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 2013-07-28
    • 2013-10-29
    • 2015-03-23
    • 2012-08-05
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多