6

我的问题是:

当我使用以下代码调用 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']);
    });
4

2 回答 2

6

您违反了同源政策。如果您控制目标站点,则应考虑使用JSONP调用样式或在您的站点和 AJAX 调用中启用跨域选项 ( )。crossDomain

默认情况下,如果您违反相同来源,您的浏览器不会拨打电话。通过使用 Fiddler、FireBug 或 Chrome 工具查看 HTTP 流量,您就会知道这一点。你甚至不会看到你的请求被执行。如果是这种情况,请采用上述方法之一。

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

于 2012-08-29T13:41:49.433 回答
3

原因只是跨域保护:只有在服务器提供特定标头的情况下,才能从另一个域(显然)对 json 进行 ajax 查询。

我建议您阅读这份完整的参考资料,因为现在这是编写基于 ajax 的应用程序的基本知识。

两者使用相同的名称。

于 2012-08-29T13:40:46.963 回答