您的位置:首页 > Web前端 > JavaScript

jsonp解决跨域请求问题

2017-02-21 15:17 971 查看
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);
});

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: