小编典典

jQuery getJSON无法跨站点工作

ajax

我有一段可捕获JSON数据的JavaScript。在本地执行时,一切似乎都可以正常工作。但是,当我尝试从其他站点访问它时,它不起作用。

这是脚本。

$(function(){
    var aT = new AjaxTest();
    aT.getJson();
});

var AjaxTest = function()
{
    this.ajaxUrl = "http://mydeveloperpage.com/sandbox/ajax_json_test/client_reciever.php";

    this.getJson = function(){
        $.getJSON(this.ajaxUrl, function(data){
            $.each(data, function(i, piece){
                alert(piece);
            });
        });
    }
}

您可以在“
http://mydeveloperpage.com/sandbox/ajax_json_test/
”中找到完全相同的文件的副本。

任何帮助将不胜感激。

谢谢!


阅读 242

收藏
2020-07-26

共1个答案

小编典典

文档中

  • 由于浏览器安全性的限制,大多数“ Ajax”请求都受相同的原始策略约束; 该请求无法成功从其他域,子域或协议检索数据。

  • 脚本和JSONP请求不受相同的原始策略限制。

您将需要使用JSONP来超越同源策略。jQuery可以使其无缝(请参见上述文档页面的其余部分)。

2020-07-26