2

我正在尝试从不同的域访问 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 的情况下,我可以做些什么来解决相同的源策略?在此先感谢 - 我在代理方面遇到了重大问题,但我听说这是可能的。

4

1 回答 1

2

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

最常见的是使用跨域资源共享 (CORS)。

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

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

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

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

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

于 2013-07-12T20:44:05.820 回答