我的问题是:
当我使用以下代码调用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']);
});
答案 0 :(得分:6)
您违反了same origin policy。如果您控制目标网站,则应考虑使用JSONP调用方式或在您的网站和AJAX调用中启用cross domain选项(crossDomain
)。
默认情况下,如果您违反同一来源,您的浏览器将不会拨打电话。您可以通过使用Fiddler,FireBug或Chrome工具观看您的HTTP流量来了解这一点。您甚至不会看到您的请求被执行。如果是这种情况,那么采取上述方法之一。
我希望这会有所帮助。祝你好运!
答案 1 :(得分:3)
原因只是跨域保护:只有在服务器提供特定标头时才能从另一个域(显然)查询json查询json。
我建议您阅读this complete reference,因为现在需要了解基于ajax的应用程序。
两者使用相同的名称。