浅析jQuery Ajax请求参数和返回数据的处理


Posted in Javascript onFebruary 24, 2016

刚接触学会用jQuery ajax的时候,觉得真东西好神奇,这样就可以把数据取回来了啊。然后我可以把取回来的数据渲染到页面上,一颗赛艇。

之前很早接触到项目,并不知道怎么优雅的去用jquery ajax(现在也不优雅);

那个时候看别人写的代码

$.post("","",...)

也有

$.get("","",...)

还有

$.ajax()

当然现在知道点,这些写法都是一个意思,还是习惯用 $.ajax() 写写吧。

之前的数据处理,发送数据请求(json的数据格式),然后自己通过下面的方式

var request = {};
request.name = $(".name").val();
request.age = $(".age").val();
request.sex = $(".sex").val();
//...

当时表单发送的参数项少,所以没觉得什么,到后来一个表单很多项数,也这么写,结果 request 就手工写了好多行,虽然能用吧,但是看看这样的代码就觉着哪里不对劲吧,至少很不“优雅”。

后来,发现其实jquery有个 serialize 的方法可以序列化表单数据,可以省事很多。

w3c_jquery_serialize-demo

处理返回数据,渲染到页面上去。

之前的做法也是和上面一模一样的吧,返回的数据是json数据格式的,然后分别取值赋值给页面元素,所以代码往往是这样的。

  浅析jQuery Ajax请求参数和返回数据的处理

如果数据再多点,真的是感觉略难看。其实应该是有更好的做法的,返回的是一个json对象,所以我们可以通过遍历对象的属性值取到所有值然后依次渲染到页面对应元素即可。

对象遍历可以用 for-in 来写(有更好的方法来写么?)

$.ajax({
//...
success:function(result){
for(var v in result){
// 如果渲染的元素都是统一的输入框形式的话,
$("form").find("input[name="+ v +"]").val(result[v]); 
// 如果有其他元素 则另外单独校验处理
}
}
})

上面name(或者其他tag在页面中先写好,和返回数据的属性一致)。

jQuery中ajax的4种常用请求方式

1.$.ajax()返回其创建的 XMLHttpRequest 对象。

$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。

实例:

保存数据到服务器,成功时显示信息。

$.ajax({
type: "post",
dataType: "html",
url: '/Resources/GetList.ashx',
data: dataurl,
success: function (data) {
if (data != "") {
$("#pager").pager({ pagenumber: pagenumber, pagecount: data.split("$$")[1], buttonClickCallback: PageClick });
$("#anhtml").html(data.split("$$")[0]);

}
}
});

2.通过远程 HTTP GET 请求载入信息。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

实例:

$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});

3. 通过远程 HTTP POST 请求载入信息。

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

实例:

$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames }, function (data) {
if (data == "ok") {
alert("添加成功!");
}
})

4.通过 HTTP GET 请求载入 JSON 数据。

实例:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});

以上内容是小编给大家介绍的jQuery Ajax请求参数和返回数据的处理,希望对大家有所帮助!

Javascript 相关文章推荐
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
Jan 03 Javascript
Extjs407 getValue()和getRawValue()区别介绍
May 21 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
vue数据双向绑定原理解析(get &amp; set)
Mar 08 Javascript
js如何获取网页所有图片
May 12 Javascript
学习Vue组件实例
Apr 28 Javascript
jquery层次选择器的介绍
Jan 18 jQuery
Vue中jsx不完全应用指南小结
Nov 01 Javascript
Openlayers3实现车辆轨迹回放功能
Sep 29 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
JS高级程序设计之class继承重点详解
Jul 07 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 #Javascript
JQuery EasyUI的使用
Feb 24 #Javascript
使用jQuery监听DOM元素大小变化
Feb 24 #Javascript
JavaScript中的闭包
Feb 24 #Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 #Javascript
jquery中键盘事件小结
Feb 24 #Javascript
javascript实现九宫格相加数值相等
May 28 #Javascript
You might like
PHP正则表达式笔记与实例详解
2019/05/09 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
Python pass 语句使用示例
2014/03/11 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
python破解同事的压缩包密码
2020/10/14 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
大学生简历中个人的自我评价
2013/10/06 职场文书
怎样写演讲稿
2014/01/04 职场文书
岳父生日宴会答谢词
2014/01/13 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
常住证明范本
2015/06/23 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP