Jquery AJAX 注意要点
一个循环加载的例子
<script type="text/javascript"> $(document).ready(function () { var widgets = []; //添加一个取消订单的清单 widgets.push('@Url.Action("WidgetCancledOrder", new { area = "", controller = "WidgetOrder" })'); @foreach (var w in widgeList) { @:widgets.push('@Url.Action(w.Action, new { area=w.Area,controller = w.Controller })'); } var idx = 0; var tries = 0; function retrievePage() { $.ajax({ url: widgets[idx], dataType: 'html', success: function (data) { $("#divContainer").append(data); if (++idx < widgets.length) { retrievePage(); } tries = 0; }, failure: function () { if (tries++ < 3) { retrievePage(); } } }); } if (widgets.length > 0) { retrievePage(); } }); </script>
2 一个 使用ajax的例子显示隐藏加载
<script>
function showLoading(obj) {
$('span.loading').remove();
$(obj).append('<span class="loading"><img src="@(Url.Content("~/") + "images/loading.gif")"/></span>');
}
function hideLoading() {
$('span.loading').remove();
}
function getListForDetailPage(url, obj) {
$("div.list-group a.list-group-item").removeClass("active");
$(obj).addClass("active");
showLoading(obj);
$.ajax({
url: url,
dataType: 'html',
success: function (data) {
},
complete: function () {
hideLoading();
}
});
}
</script>
- 3 .post时指定参数为list或是array时
当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收.
比如:
$.ajax({
type: "POST",
url: url,
data:{ gender:[0,1] },
dataType: "json",
async:false
});
这里有个查询性别的gender数组.
用火狐的firebug查看post数据的时候,如果jquery版本过高会发现gender按以下类型提交
schGender[] 1
schGender[] 0
也就是说它把数组里面的每个元素都当成了数组了. 这样传到后台就会报错了.
解决办法是换低版本的jquery,我这里换成1.3.2就没问题了(不推荐). 之后再查看POST数据就是:
schGender 1
schGender 0
最好的解决办法是添加一个属性
traditional:true
$.ajax({
type: "POST",
url: url,
traditional:true,
data:{ gender:[0,1] },
dataType: "json",
async:false
});
引用自http://blog.csdn.net/thc1987/article/details/7278269
posted on 2017-10-24 10:37 LovlyPuppy 阅读(160) 评论(0) 收藏 举报
浙公网安备 33010602011771号