function handleResponse(response) { alert("You’re at IP address " + response.ip + ", which is in " + response.city + ", " + response.region_name); } var script = document.createElement("script"); script.src = "http://freegeoip.net/json/?callback=handleResponse"; document.body.insertBefore(script, document.body.firstChild);
function getVideoList(data) { console.log(data.retStr.length) } var script = document.createElement("script"); script.src = "http://video.baomihua.com/play2/interface/getmobilerefvideo.html&pagetype=listCod&vid=29203608&channelid=8&type=m&jsoncallback=getVideoList"; document.body.insertBefore(script, document.body.firstChild);
返回数据格式错误,过滤换行、引号等
中文编码
jQuery.getJSON()
如果URL包含字符串“callback=?”(或类似的参数,取决于服务器端 API 是如何定义的),这个请求被视为JSONP形式请求
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title></title> </head> <body> <script src="http://static01.baomihua.com/js/lib/jquery-1.4.4.min.js?t=20120926.js"></script> <script> // http://www.google.com.hk/?jsoncallback=getVideoList $.ajax({ url: 'http://www.google.com.hk/', dataType: 'jsonp', jsonp: 'jsoncallback', // 给程序取值 jsonpCallback: 'getVideoList', // 不产生随机数,接口缓存 error: function(XMLHttpRequest, textStatus, errorThrown) { // XMLHttpRequest.readyState // XMLHttpRequest.status // XMLHttpRequest.statusText // textStatus }, success: function(data) {} }) // http://www.google.com.hk/?callback=jsonp1384414552005 $.ajax({ url: 'http://www.google.com.hk/', dataType: 'jsonp', success: function(data) {} }) // http://www.google.com.hk/&jsonpcallback=getVideoList $.ajax({ url: 'http://www.google.com.hk/&jsonpcallback=?', dataType: 'jsonp', jsonpCallback: 'getVideoList', success: function(data) {} }) // http://www.google.com.hk/?jsonpccallback=jsonp1384414552006 $.getJSON('http://www.google.com.hk/?jsonpccallback=?', function() {}) </script> </body> </html>