1

我的网络服务器的名称是mybox.ourcorp.ourdomain.com. 从它我试图对同一子域中的另一台服务器进行 json 调用——http://otherbox.ourcorp.ourdomain.com/feed

如果我在我的网络服务器上打开浏览器并将该 URL 粘贴到其中,我会返回 json 数据,没问题。但是将其放入$.getJSON()我没有返回任何值:

        $.getJSON('http://otherbox.ourcorp.ourdomain.com/feed', function (json) {
               storeDataFeed(json); //<----json is null
        });

这是同源政策问题吗?我不这么认为,因为它们在同一个子域中?

如果是这样,是否otherbox必须以某种方式设置才能使用 jsonp 才能让我走这条路?

有没有办法找出为什么调用.getJSON返回null?浏览器控制台中没有消息。

4

1 回答 1

1

是的,不同的子域将被视为跨域请求(http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules)。

但是,您应该能够将 $.ajax 与 dataType:"jsonp" 一起使用:

$.ajax({
 dataType: "jsonp",
 url: "http://otherbox.ourcorp.ourdomain.com/feed",
 success:function(json) {
   storeDataFeed(json); //<----json is null
 }
});
于 2013-04-02T17:35:16.027 回答