2012-08-29 28 views
6

我的问题是:的getJSON使用IP不工作

当我使用下面的代码

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

它可以完美的来电JSON,但是,我的本地IP为10.0.0.145,当我与IP地址替换本地主机,它不再起作用

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

回答

6

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

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

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

3

原因很简单,跨域保护:JSON的AJAX查询从另一个域(显然)只能当特定的头文件是由给定t做他服务器。

我建议你阅读this complete reference,因为现在知道为了编写基于Ajax的应用程序而必须了解的内容。

对两者使用相同的名称。