我用以下方式玩$ .getJSON来接收警报,但没有运气。
这是代码,
<script type="text/javascript">
$(document).ready(function() {
var url = "ticker.js?callback=?";
$.getJSON(url, function(data) {
alert(data.price);
});
});
</script>
并且ticker.js文件只有以下行
{ticket:'IBM',price:14.57}
它应该得到警报“14.57”,但我没有得到警报。
如果您想看到它的实际效果,可以试试这个链接, http://nazmulweb.com/site5/demo/jsonPtest/
答案 0 :(得分:6)
如果是本地文件,则应删除?callback=?
部分,如下所示:
var url = "ticker.js";
$.getJSON(url, function(data) {
alert(data.price);
});
如果你看the $.getJSON()
docs,就是这样:
如果URL在URL中包含字符串
"callback=?"
,则该请求将被视为JSONP。有关详细信息,请参阅$.ajax()中jsonp
数据类型的讨论。
使用JSONP,它在响应中期望randomFunctioName({ticket:'IBM',price:14.57});
,而不是只是 JSON,而是一个函数调用...这就是JSONP跨域工作的方式,是{{1 }} 标签。由于您只需要JSON并从本地源处理它,因此请删除<script>
部分。
编辑:我完全错过了第二个问题,你当前的JSON无效,并且将在1.4中添加jQuery的检查失败。它必须是这样的:
callback=?
您可以在此处测试您的JSON的有效性:http://www.jsonlint.com/