好的。我到处搜查,没有找到任何可以理解的答案。 请注意,它是我第一次实施这种请求。 (“发生在我认为的每个人身上”):P 问题:我有一个json文件,例如https://www.example.com/something.json,我想通过使用Ajax的JSONP来请求它。 我读过,为了使一个JSONP请求,你必须将数据包装到回调函数。所以我编辑了生成json文件的php文件,并添加了$ _GET('callback')函数来包装数据。所以如果我输入浏览器https://www.example.com/something.json/?callback=jsonpCallBack我可以看到我的数据包装jsonpCallBack([{.......}]);使用jQuery使用Ajax进行纯JSONP请求
在jQuery中,现在我试图访问这些信息并每隔20秒将数据附加到html。 所以我有
var url='https://www.example.com/something.json/?callback=jsonpCallBack';
var main= $.ajax({
type:'GET',
url : url,
dataType:'jsonp',
jsonpCallback:'jsonpCallBack',
success: function(data)
{
.......
var outputhtml='<ul>';
var item = [];
for(var i =0; i < data.length-1 ;i++)
{
var item = data[i];
..........
$('.div').html(outputhtml) ;
}
});
setInterval(function() {
main;
},20000);
main;
而是我不能看到我的数据更新。我错过了什么?我还需要使用$ .getJSON()函数来获取数据吗?如果是的话,代码中会添加哪些内容?
很多困惑......
这将适用于跨域请求?我已经允许所有的CORS。 – paranoid 2013-04-06 11:47:02
如果你已经让你的服务器端脚本返回'JSONP'而不是'JSON',这将适用于跨域AJAX请求。 – 2013-04-06 16:09:44
我已经尝试了上面的代码,但数据不会随每个ajax请求一起更新。我也在Chrome中收到此警告: 将资源解释为脚本,但以MIME类型text/html传输:“https://www.example.com/json/something.json/?callback=jsonp1365783919785”。 jquery.min.js:127 c.extend.ajax jquery.min.js:127 (匿名函数)widget.js:58 c.extend.ready 但是当我点击刷新页面的数据正在改变!这太奇怪了!:S – paranoid 2013-04-12 16:27:41