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. LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger

    1.     # echo 1 > /proc/sys/kernel/sysrq 2.     # echo b > /proc/sysrq-trigger 1. /proc/sys/ke ...

  2. CocoaAsyncSocket一个第三方Socket库

    github地址:https://github.com/robbiehanson/CocoaAsyncSocket github上的不完整,cocochina也有demohttp://code4app ...

  3. 【leetcode 字符串】466. Count The Repetitions

    https://leetcode.com/problems/count-the-repetitions/description/ 找循环节 https://www.cnblogs.com/grandy ...

  4. 【2018.8.10】四连测day4 题解

    T1:给出一棵 $n$ 个节点的无根树,其中 $m$ 个节点是特殊节点,求对于任意 $i ∈ [0, m]$,包含 $i$ 个特殊节点的联通块个数$\mod 998244353$. $1<=n, ...

  5. Java中NIO、BIO、AIO相关概念及应用场景

    1.同步阻塞IO(JAVA BIO):同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时,服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通 ...

  6. angular实时显示checkbox被选中的元素

    /** * Created by zh on 20/05/15. */ // Code goes here var iApp = angular.module("App", []) ...

  7. uva 10561 sg定理

    Problem C Treblecross Input: Standard Input Output: Standard Output Time Limit: 4 Seconds Treblecros ...

  8. ElasticSearch集群状态查看命令大全

    Elasticsearch中信息很多,同时ES也有很多信息查看命令,可以帮助开发者快速查询Elasticsearch的相关信息. _cat $ curl localhost:9200/_cat =^. ...

  9. SQLite数据库相关操作

    一.创建数据库 这里创建了note便签数据表,字段有noteId.noteTitle.noteTime.noteInfo );  // TODO Auto-generated constructor ...

  10. shell按日期自动切割nginx日志脚本

    shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...