$ .getJSON获取JSONP数据

我用以下方式玩$ .getJSON来接收警报,但没有运气。

这是代码,

 $(document).ready(function() { var url = "ticker.js?callback=?"; $.getJSON(url, function(data) { alert(data.price); }); });  

并且ticker.js文件只有以下行

 {ticket:'IBM',price:14.57} 

它应该得到警报“14.57”,但我没有得到警报。

如果你想看到它的实际效果,你可以试试这个链接, http://nazmulweb.com/site5/demo/jsonPtest/

如果它是本地文件,你应该删除?callback=? 部分,像这样:

 var url = "ticker.js"; $.getJSON(url, function(data) { alert(data.price); }); 

如果你看一下$.getJSON()文档 ,那就是:

如果URL包含字符串"callback=?" 在URL中,请求被视为JSONP。 有关更多详细信息,请参阅$ .ajax()中有关jsonp数据类型的讨论。

使用JSONP,它需要randomFunctioName({ticket:'IBM',price:14.57}); 在响应中, 不仅仅是 JSON,而是一个函数调用……这就是JSONP通过标记在跨域工作的方式。 既然您只想要JSON并从本地源处理它,那么删除callback=? 片。

编辑:我完全错过了第二个问题,你当前的JSON无效,并且将在1.4中添加jQuery的检查失败。 它必须是这样的:

 { "ticket": "IBM", "price": 14.57 } 

您可以在此处测试您的JSON的有效性: http : //www.jsonlint.com/