【问题标题】:getJSON using an IP is not working使用 IP 的 getJSON 不起作用
【发布时间】:2012-08-29 22:45:51
【问题描述】:

我的问题是:

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

【问题讨论】:

    标签: jquery ajax playframework getjson


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      我建议您阅读this complete reference,因为现在这是编写基于 ajax 的应用程序的基本知识。

      两者使用相同的名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 2015-01-16
        • 2010-11-08
        • 2013-11-27
        相关资源
        最近更新 更多