$ .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/