使用IP的getJSON无效

时间:2012-08-29 13:39:28

标签: jquery ajax playframework getjson

我的问题是:

当我使用以下代码调用json时

var url="http://localhost:9000/json";
$.getJSON(url,
 function(data){
    alert(data['yay']);
    });

它工作正常,但是,我的localhost IP是10.0.0.145,当我用IP地址替换localhost时,它不再有效

var url="http://10.0.0.145:9000/json";
$.getJSON(url,
 function(data){
    alert(data['yay']);
    });

2 个答案:

答案 0 :(得分:6)

您违反了same origin policy。如果您控制目标网站,则应考虑使用JSONP调用方式或在您的网站和AJAX调用中启用cross domain选项(crossDomain)。

默认情况下,如果您违反同一来源,您的浏览器将不会拨打电话。您可以通过使用Fiddler,FireBug或Chrome工具观看您的HTTP流量来了解这一点。您甚至不会看到您的请求被执行。如果是这种情况,那么采取上述方法之一。

我希望这会有所帮助。祝你好运!

答案 1 :(得分:3)

原因只是跨域保护:只有在服务器提供特定标头时才能从另一个域(显然)查询json查询json。

我建议您阅读this complete reference,因为现在需要了解基于ajax的应用程序。

两者使用相同的名称。