angularjs jsonp跨域

时间:2023-03-10 05:35:38
angularjs jsonp跨域
<script>
    (function(angular){
        "use strict"
        var app= angular.module('appController',[]);
        app.service('HttpService',['$document,$window',function($document,$window){
            //url请求的路径   data入参  callback回调函数
            this.jsonp=function(url,data,callback){
                //挂载回调函数
                var kawaCallback='kawaCallback';
                    $window[kawaCallback]=callback;  

                //url中没有'?'就加'?',有就加'&','&'即使重复了也没影响
                var  param =url.indexOf('?')==-1 ? '?':'&';
                //{id: 001,name:kawa} => id=1&name=kawa
                for(var q in data){
                    param+=key+'='+data[key]+'&';
                }
                //回调函数
                param+='callback=kawaCallback'
                //创建script标签
                var script_=$document[0].createElement('script');
                script_.src=url+param;
                //将script放入页面中会自动加载
                $document[0].body.appendChild(script_);
            }
        }])
    })(angular);
</script>