Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作。

$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()

一、$.ajax的一般格式

$.ajax({

type: 'POST',

url: url ,

data: data ,

success: success ,

dataType: dataType

});

二、$.ajax的参数描述

参数 描述

url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType

可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script 或 html)。

三、$.ajax需要注意的一些地方:

1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。

2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit

四、实例:

//1.$.ajax带json数据的异步请求

var aj = $.ajax( {
      url:'productManager_reverseUpdate',// 跳转到 action
      data:{
        selRollBack : selRollBack,
        selOperatorsCode : selOperatorsCode,
        PROVINCECODE : PROVINCECODE,
        pass2 : pass2  },
      type:'post',
      cache:false,
      dataType:'json',
      success:function(data) {
            if(data.msg =="true" ){
              // view("修改成功!");
              alert("修改成功!");
              window.location.reload();
            }else{
              view(data.msg);
            }
        },
      error : function() {
        // view("异常!");
        alert("异常!");
      }
  });

//2.$.ajax序列化表格内容为字符串的异步请求

function noTips(){
    var formParam = $("#form1").serialize();//序列化表格内容为字符串
    $.ajax({
      type:'post',
      url:'Notice_noTipsNotice',
      data:formParam,
      cache:false,
      dataType:'json',
      success:function(data){
      }
    });
  }

//3.$.ajax拼接url的异步请求

var yz=$.ajax({
    type:'post',
    url:'validatePwd2_checkPwd2?password2='+password2,
    data:{},
    cache:false,
    dataType:'json',
    success:function(data){
    if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间
       {
        textPassword2.html("<font color='red'>业务密码不正确!</font>");
        $("#validatePassword2").val("pwd2Error");
        checkPassword2 = false;
        return;
      }
    },
    error:function(){}
  });

//4.$.ajax拼接data的异步请求

$.ajax({
  url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action',
  type:'post',
  data:'merName='+values,
  async : false, //默认为true 异步
  error:function(){
    alert('error');
  },
  success:function(data){
    $("#"+divs).html(data);
  }
});

//5.done的使用

$.ajax({
    type:'get',
    async:false,
    url:this.topUrl + 'sbjctDmnInfo/queryVrsnCD.action?rnd=' + Math.random()
    }).done(function(data){
      if (data.retcode == '0000') {
        aplnCommon.rightTreeSearchObj.dataVrsnId = data.obj[0].vrsnId;
        func1();
      }
  });

随机推荐

  1. 【2018.9.20】JOI 2017 Final T2「準急電車 / Semiexpress」

    题目描述 JOI 铁路公司是 JOI 国唯一的铁路公司. 在某条铁路沿线共有 $N$ 座车站,依次编号为 $1...N$. 目前,正在服役的车次按照运行速度可分为两类:高速电车(简称快车)与普通电车( ...

  2. uva 10692 高次幂取模

    Huge Mod Input: standard input Output: standard output Time Limit: 1 second The operator for exponen ...

  3. android soap webservers 无法执行 报错 ht.call(SOAP_ACTION, envelope);解决方法

    1.可能没有加入网络访问权限,在Manifest里面加入,<uses-permission android:name="android.permission.INTERNET" ...

  4. *Codeforces961G. Partitions

    $k \leq n \leq 100000$,求式子$Ans=\sum_{i=1}^n w_i\sum_{j=1}^n j\binom{n-1}{n-j} \{ ^{n-j}_{k-1} \}$. 题 ...

  5. Android 获取屏幕事件的坐标

    通常情况下我们只能获取当前Activity的画面坐标,那有时候我们需要做到一种类似于c++ hook的后台运行程序能够监听到前台用户的操作并记录下来,往往这类程序都是为自动化测试服务的. Androi ...

  6. Redis数据结构之整数集合

    整数集合是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t .int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素. 一.整数集合数据结构定义 参数说明: ...

  7. css,世界上没有绝对简单的事情

    引文 自从学了前端的基础,自认为是没什么css是能难倒我的,可是事实是,世界上没有绝对简单的事情,实际上还有好多的东西等待我们去发掘. 详解 1.有些浏览器不完全支持css3,现在可以用 modern ...

  8. django cookie session操作

    Cookie是什么? cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是 ...

  9. php 中函数获取可变参数的方法, 这个语法有点像 golang 语言中的

    原文呢:http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict Onl ...

  10. Mysql学习之十二:JDBC连接数据库之DriverManager方法

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包括7个步骤: 1.载入JDBC驱动程序: 在连接数据库之前.首先要载入想要连接的数据库的驱动到JVM(Java虚拟机). 这通过java.l ...