浅析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 相关文章推荐
jquery 最简单的属性菜单
Oct 08 Javascript
JS去除右边逗号的简单方法
Jul 03 Javascript
JavaScript数字和字符串转换示例
Mar 26 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
Apr 06 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
js为什么不能正确处理小数运算?
Dec 29 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
vue-cli如何添加less 以及sass
Jul 06 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
微信小程序文章列表功能完整实例
Jun 03 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 getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Django 跨域请求处理的示例代码
2018/05/02 Python
python版百度语音识别功能
2019/07/09 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
python 瀑布线指标编写实例
2020/06/03 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
在线课程:Skillshare
2019/04/02 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
经典导游欢迎词
2015/01/26 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
python使用BeautifulSoup 解析HTML
2022/04/24 Python
Python实现聚类K-means算法详解
2022/07/15 Python