zoukankan      html  css  js  c++  java
  • ajax

    ajax简介

    简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState):

    0-未初始化、1-正在初始化、2-发送数据、3-正在发送数据、4-完成。

    当XMLHttpRequest.readyState为4时,表示ajax请求已经完成可以得到响应结果。

    ajax的success和error方法根据响应状态码来触发。当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success(),其他状态码则触发error()。

    除了根据响应状态码外,ajax还会在下列情况下走error方法:

    返回数据类型不是JSON(所以集合类型的数据一定不能为null)

    网络中断

    后台响应中断

    ajax封装

            /*ajax封装*/
            jQuery.ax = function(url, data, type, successfn, errorfn, async) {
                success_fn = successfn;  //防止ax执行完回收successfn,所以赋给全局success_fn
                error_fn = errorfn;
                var contentType = "application/x-www-form-urlencoded; charset=utf-8";  //或者"application/json; charset=utf-8";根据后台架构来
                var contype_application = "application/x-www-form-urlencoded";
                if ((data == null || data == "" || typeof(data) == "undefined")) {
                    $.ajax({
                        type: type,
                        async: async,
                        url: url,
                        dataType: "json",
                        beforeSend: function(request) {
                            request.setRequestHeader("Content-type", contype_application);
                        },
                        contentType: contentType,
                        success: function(d) {
                            successfun(d)
                        },
                        error: function(e) {
                            errorfn(e);
                        }
                    });
                } else {
                    $.ajax({
                        type: type,
                        async: async,
                        url: url,
                        data: data,   //根据后台处理机制,也可以写成JSON.stringify(data)
                        dataType: "json",
                        contentType: contentType,
                        beforeSend: function(request) {
                            request.setRequestHeader("Content-type", contype_application);
                        },
                        success: function(d) {
                            success_fn(d)
                        },
                        error: function(e) {
                            error_fn(e);
                        }
                    });
                }
            }

    参数

    url : ajax请求的url
    data : 请求参数
    type: GET或者POST
    successfn : 成功函数
    errorfn : 失败函数
    async : 是否异步,异步true,同步false

    调用

          var data = {id:module.id,modulename:'未命名'};
          $.ax('./permission/insertSelective', data, 'POST', function(d) {
              /*success*/
          }, function(e) {
              /*error*/
          }, false); //同步
  • 相关阅读:
    显示隐藏,页面搜索,操作DOM
    Jquery点击事件隐藏显示菜单
    《转》学习JQuery该掌握的内容
    跨域调用(mvc、webapi)
    cocos creator基础-(三十二)cc.Graphics组件和cc.Camera组件
    cocos creator基础-(三十一)超大数值计算
    cocos creator实战-(三)简单例子摇杆控制角色移动
    cocos creator基础-(三十)微信小游戏第三方资源部署
    cocos creator实战-(二)跳一跳
    cocos creator实战-(一)台球小游戏
  • 原文地址:https://www.cnblogs.com/aeolian/p/8031785.html
Copyright © 2011-2022 走看看