AngularJs中POST和GET方式的ajax请求

angular中ajax请求的方法说明:
/*
 * _http:angularJs中的$http对象
 * _url:ajax请求的URL
 * _method:请求方式:POST或GET
 * _params:GET方式请求时传递的参数
 * _data:POST方式请求时传递的参数
 * _responseType:在请求中设置XMLHttpRequestResponseType属性,""(字符串,默认),
 * "arraybuffer"(ArrayBuffer);"blob"(blob对象);"document"(HTTP文档)"json"(从JSON对象解析而来的JSON字符串);
 * "text"(字符串);"moz-blob"(Firefox的接收进度事件);"moz-chunked-text"(文本流);"moz-chunked-arraybuffer"(ArrayBuffer流)。
 * 这个参数表示的含义就是服务器给页面返回的数据格式
 * _successCallback:请求成功的回调函数
 * _failureCallback:请求失败的回调函数
 *
*/
function ajaxClass(_http,_url,_method,_params,_headers,_data,_responseType,_successCallback,_failureCallback){
    this.http = _http
    this.url = _url || "";
    this.method = _method || "GET";
    this.params = _params || "";
    this.headers = _headers || "";
    this.data = _data || "";
    this.responseType = _responseType || "json";
    this.successCallback = _successCallback || function(res){
    };
    this.failureCallback = _failureCallback || function(res){

    };
    this.requestData = function (){
        this.http({
        method:this.method,
        url:this.url,
        params:this.params,
        data:this.data,
        headers : this.headers,
        responseType : this.responseType
    }).then(this.successCallback, this.failureCallback);
    }
}
POST方式请求数据,并且传递表单数据的例子
var ajaxApp = angular.module(‘ajaxApp‘,[]);

ajaxApp.controller(‘addCtrl‘,function($scope,$http,$filter){
    var url = "a.json";
    var ajax = new ajaxClass($http,url,"POST");
    ajax.data = $.param({"username":"qqq","pwd":"bbb","code":"111"});                // 传递表单数据的时候要使用$.param不然服务器没法正常捕获到发送的数据
    ajax.headers = { ‘Content-Type‘: ‘application/x-www-form-urlencoded‘ };            // 千万记住要传递表单数据的时候设置请求头
    ajax.successCallback = function(res){
        var status = res.data.status;
        if (status == 0){
            $scope.gridOptions = res.data;
        }
        else {

        }
    };
    ajax.failureCallback = function(res){
    };
    ajax.requestData();

});
GET方式请求数据,并且传递参数的例子
var myApp = angular.module(‘myApp‘,[]);

myApp.controller(‘myCtrl‘,function($scope,$http){
    var url = "a.php";
    //var url = "a.php?limit=10"
    var ajax = new ajaxClass($http,url,"get");
    ajax.params = {"limit":11};                    // 表单方式传递数据或者可以使用在url后面加?limit=11这样的形式传递
    // get方式请求数据不需要设置表头header
    ajax.successCallback = function(res){
        var status = res.data.status;
        $scope.gridOptions = res.data;
        console.log("status = " + status);
        if (status == 0){
            $scope.gridOptions = res.data;
        }
        else {

        }
    };
    ajax.failureCallback = function(res){
    };
    ajax.requestData();

});
GET方式请求数据,不传递参数的例子
var myApp = angular.module(‘myApp‘,[]);

myApp.controller(‘myCtrl‘,function($scope,$http){
    var url = "a.json";
    var ajax = new ajaxClass($http,url,"get");
    // get方式请求数据不需要设置表头header
    ajax.successCallback = function(res){
        var status = res.data.status;
        $scope.gridOptions = res.data;
        console.log("status = " + status);
        if (status == 0){
            $scope.gridOptions = res.data;
        }
        else {

        }
    };
    ajax.failureCallback = function(res){
    };
    ajax.requestData();

});
 1 html页面需要导入的库如下:
 2 <!DOCTYPE html>
 3 <html>
 4 <head>
 5     <title></title>
 6     <meta charset="UTF-8" />
 7 </head>
 8 <script type="text/javascript" src="../static/bower_components/jquery/dist/jquery.min.js"></script>
 9 <script type="text/javascript" src="../static/bower_components/angular/angular.min.js"></script>
10 <script type="text/javascript" src="../static/bower_components/ag-grid/website/dist/angularGrid-latest.js"></script>
11 <body ng-app="myApp" ng-controller="myCtrl">
12 <ul>
13     <!--ng-repeat可以循环显示gridOptions下面的数据-->
14     <!--<li ng-repeat="x in gridOptions.data">
15     {{ x.Name }}
16     </li>-->
17     <li>{{ gridOptions }} "+" {{ gridOptions.length}} </li>
18 </ul>
19 </body>
20 <!--由于我把上面的ajaxClass这个方法是单独放在ajax.js文件的,所以此处需要导入这个文件,provider.js就是创建控制器进行请求的部分-->
21 <script type="text/javascript" src="../static/js/ajax.js"></script>
22 <script type="text/javascript" src="../static/js/provider.js"></script>
23 </html>
时间: 2024-12-29 06:01:45

AngularJs中POST和GET方式的ajax请求的相关文章

如何在Crystal Portlet中正确返回JSON数据给AJAX请求?

当Crystal Portlet中需要采用Ajax请求,并让后台返回Json数据时,如何才能正确.方便的返回Json数据呢? 以下两种方法均可: 方法一:Ajax请求时,采用RenderURL,对应Portlet类中采用ajax(data)方法返回Java对象即可: 方法二:Ajax请求时,采用ResourceURL,对应Portlet类中采用ajax(data,response)方法将Java对象直接输出到Response流中:(推荐使用此方法) 分步指南 方法一: Ajax请求时,url采用

jquery的post方式发送AJAX请求

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content='text/html;charset=utf-8'> 5 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" ></script> 6 <title>&

ThinkPHP以jquery传送json数据格式的方式实现ajax请求

在之前我这里是失败过很多次的,有的时候甚至不得不采用get的传送方式,另外,thinkphp自带的ajax->return方法并不能够解决问题,而且会让问题变得更加复杂,与其不如直接使用jquery的方法,全部采用post提交的方式,get提交是没有任何的问题的,但是post提交问题就一个接一个.我就一直纳闷,为什么在但一脱离框架的页面就能够畅通无阻,这个问题非常的棘手.研究了好长时间终于发现问题所在了,jquery只是前端性的东西基本上和框架扯不上太大的关系,下面是对该问题的总结: 1: 不要

jquery的get方式发送AJAX请求

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content='text/html;charset=utf-8'> 5 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" ></script> 6 <title>&

jquery的ajax方式发送AJAX请求

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content="text/html;charset=utf-8" > 5 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" ></script> 6 <

AJAX-----05XMLHttpRequest对象的用post方式进行ajax请求

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <script> function createXHR(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpR

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中):Ajax请求

[开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求

项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache     最近在项目中用到了本地缓存localStorage做数据的缓存. 1.简单说下localStorage localStorage和cookies相比,在浏览器中存储的容量更大.另外最大的特点是不会附带在http请求中传给后台,不会像cookies一样导致http头部变大影响传输性能.基于这个原因,localStorage适合缓存一些常用的数据,无需平凡的

07. ajax请求,解决sendRedirect 无效

介绍: 后台基于旧代码用的Filter验证,若 Session过期,则跳转登陆页面 前台框架:EasyUI 问题: 最初后台验证不通过: 1 httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/login.html"); 但是该方式对ajax请求无效,无法跳转到登陆页面 所以我把 ajax请求 和 其它静态请求等 分开处理 1 2 3 4 5 6 if(servletPath.endsWith