src="url?callback=function"
url后面跟着?代表第一个参数开始, &代表and(链接符) 也就是后面要再加参数.
callback代表参数,后台定义的参数名称,后面函数是自己写的回调函数。
JS中:
JS方法一:
<script type="text/javascript">
function jsonpCallback(result) {
//console.log(result);
for(var i in result) {
console.log(i + ":" + result[i]); //循环输出a:1,b:2,etc.
}
}
var JSONP = document.createElement("script");
JSONP.type = "text/javascript";
JSONP.src = "url?callback=jsonpCallback";
document.getElementsByTagName("head")[0].appendChild(JSONP);
</script>
JS方法二:
<script type="text/javascript">
function jsonpCallback(result) {
console.log(result);
for(var i in result) {
alert(i+":"+result[i]);//循环输出a:1,b:2,etc.
}
}
</script>
<script type="text/javascript" src="url?callback=jsonpCallback"></script>
Jquery中:
$.getJSON:
<script type="text/javascript">
$.getJSON("url?callback=?",
function(result) {
for(var i in result) {
alert(i+":"+result[i]);//循环输出a:1,b:2,etc.
}
});
</script>
$.ajax:
<script type="text/javascript">
$.ajax({
url:"url",
dataType:'jsonp',
data:'',
jsonp:'callback',
success:function(result) {
for(var i in result) {
alert(i+":"+result[i]);//循环输出a:1,b:2,etc.
}
},
timeout:3000
});
</script>
$.get:
<script type="text/javascript">
$.get('url?callback=?', {name: encodeURIComponent('tester')}, function (json) { for(var i in json) alert(i+":"+json[i]); }, 'jsonp');
</script>
Angularjs中:
方法一:
$http.jsonp("url?callback=JSON_CALLBACK").success(function(data){
$scope.todo=data;
console.log(data);
});
方法二:
$http({ method: 'JSONP', url: 'url?callback=JSON_CALLBACK', }).success(function(data) { console.log(data); });