美文网首页我爱编程
两分钟会用angular数据交互和jsonp跨域

两分钟会用angular数据交互和jsonp跨域

作者: 彬哥头发多 | 来源:发表于2017-01-30 15:09 被阅读230次

    本文旨在两分钟内让你能够用angular进行数据交互。

    准备工作:

    ​ 1.angular 1.3.2 下载地址:https://code.angularjs.org/1.3.2/angular.min.js

    ​ 2.相关文档:https://code.angularjs.org/1.3.20/docs/api/ng/service/$http

    例子,点击按钮通过get,post方式获取数据,这里注意angular获取数据是通过$http服务实现的,注意下面代码不需要你懂,只要会用就好,就和你不懂jquery ajax方法实现不影响你使用它数据交互一样。

    首先上一个get的例子,get单词换成post就是post方式。不墨迹上代码,注意要想运行我的例子,要在服务器环境下,另外data.php并不复杂,

    里面就一个数字12,完事儿。

    上get例子:

    <!DOCTYPE html>
    <html ng-app="mk">
    <head>
        <meta charset="utf-8">
        <style>
    
        </style>
        <script src="angular.min.js"></script>
        <script>
            var app = angular.module('mk',[]);
            app.controller('getData',function($scope,$http){
                $scope.getData = function(){
                    $http.post('data.php').
                    success(function(data, status, headers, config) {
                        console.log(data+5);
                    }).
                    error(function(data, status, headers, config) {
                        console.log(status);
                    });
                };
            });
    
        </script>
    </head>
    <body>
    <div ng-controller = "addMsg" id="div1"> 
        <input type="button" value="获取数据" ng-click = "getData()">   
    </div>
    </body>
    </html>
    
    

    更多情况下我们使用jsonp跨域,这里是我随便找的百度接口,地址后台人员回给你,好,看jsonp方式

    <!DOCTYPE html>
    <html ng-app="mk">
    <head>
        <meta charset="utf-8">
        <style>
    
        </style>
        <script src="angular.min.js"></script>
        <script>
            var app = angular.module('mk',[]);
            app.controller('addMsg',function($scope,$http){
                $scope.getData = function(){
                    $http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?cb=JSON_CALLBACK&wd=aaa').
                    success(function(data, status, headers, config) {
                        var arr = data.s;
                        console.log(arr);
                    }).
                    error(function(data, status, headers, config) {
                        console.log(status);
                    });
                };
            });
    
        </script>
    </head>
    <body>
    <div ng-controller = "addMsg" id="div1">
       
        <input type="button" value="获取数据" ng-click = "getData()"> 
    </div>
    </body>
    </html>
    
    

    强调两点

    1.地址回调函数名字必须是 JSON_CALLBACK

    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?cb=JSON_CALLBACK&wd=aaa 使用地址

    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=aaa&cb=show 原来的地址

    2.注意

    ​ 原来后台人员给你cb你就用cb,如果后台给你地址叫 callback=show 那你就把使用地址转变为callbak

    最后一句,js大法好,信leo,得永生。

    相关文章

      网友评论

        本文标题:两分钟会用angular数据交互和jsonp跨域

        本文链接:https://www.haomeiwen.com/subject/bllhittx.html