jQuery Ajax 实例代码 ($.ajax、$.post、$.get)


Posted in Javascript onApril 29, 2016

$.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

四、$.ajax我的实际应用例子

//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);  
  }
});

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。

type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和

delete也可以使用,但仅部分浏览器支持。

timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设

置。

async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。

如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等

待请求完成才可以执行。

cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。

设置为false将不会从浏览器缓存中加载请求信息。

data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格

式。get请求中将附加在url后。防止这种自动转换,可以查看processData选项。对象必须为key/value格

式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同

值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。

dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime

信息返回responseXML或responseText,并作为回调函数参数传递。

可用的类型如下:

xml:返回XML文档,可用JQuery处理。

html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。

script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求

时(不在同一个域下),所有post请求都将转为get请求。

json:返回JSON数据。

jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个

“?”为正确的函数名,以执行回调函数。

text:返回纯文本字符串。

beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义

HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参

数。

function(XMLHttpRequest){

this; //调用本次ajax请求时传递的options参数

}

complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。

参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。

function(XMLHttpRequest, textStatus){

this; //调用本次ajax请求时传递的options参数

}

success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。

(1)由服务器返回,并根据dataType参数进行处理后的数据。

(2)描述状态的字符串。

function(data, textStatus){

//data可能是xmlDoc、jsonObj、html、text等等

this; //调用本次ajax请求时传递的options参数

error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错

误信息、捕获的错误对象(可选)。

ajax事件函数如下:

function(XMLHttpRequest, textStatus, errorThrown){

//通常情况下textStatus和errorThrown只有其中一个包含信息

this; //调用本次ajax请求时传递的options参数

}

contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认

为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。

dataFilter:要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。

提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的

dataType参数。函数返回的值将由jQuery进一步处理。

function(data, type){

//返回处理后的数据

return data;

}

global:要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局

ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。

ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。

服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。

jsonp:要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。

该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如

{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。

password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。

processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度

来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM

树信息或者其他不希望转换的信息,请设置为false。

scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时

才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。

案例代码:

 $(function(){
 
$('#send').click(function(){
 

$.ajax({
 

type: "GET",
 

url: "test.json",
 

data: {username:$("#username").val(), content:$("#content").val()},
 

dataType: "json",
 

    success: function(data){
 

    $('#resText').empty(); //清空resText里面的所有内容
 
      var html = '';
 
      $.each(data, function(commentIndex, comment){
 

     html += '' + comment['username']+ ':+ '';
      });
 
       $('#resText').html(html);
 
       }
 

});
 

     });
 

});

顺便说一下$.each()函数:

$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。

以上这篇jQuery Ajax 实例代码 ($.ajax、$.post、$.get)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
使用jQuery和PHP实现类似360功能开关效果
Feb 12 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
jQuery 3.0十大新特性
Jul 06 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
基于Vuejs的搜索匹配功能实现方法
Mar 03 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
Apr 29 #Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 #Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 #Javascript
弹出遮罩层后禁止滚动效果【实现代码】
Apr 29 #Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 #Javascript
Bootstrap实现下拉菜单效果
Apr 29 #Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 #Javascript
You might like
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
全面理解闭包机制
2016/07/11 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
彻底搞懂Python字符编码
2018/01/23 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
如何掌握自荐信格式呢
2013/11/19 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
社区文艺活动方案
2014/08/19 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python