常用的ajax交互

一、ajax的种类和用法特性等

1、$.ajax

$.ajax({
     type : "post",
     url : baseUrl + 'kck/xxxxkc/queryXxOrXx',
     data : {kzlx:kzlx,kzdm:sjkzdm},
     async : false,
     success : function(res){
         self.data2 = res.xxxxkzLists;
     }
 })

需要注意的点:

1、$.post默认是异步交互,并且不能设置同步

2、$.ajax 默认也是true:异步,false:同步。

异步:多个ajax和函数同时执行
同步:跟函数顺序执行

<script type="text/javascript">
function sentAjax(){
    Ajax1();
    Ajax2();
 }
function Ajax1(){
    $.ajax({
          cache : false,
          url:"<%=basePath%>/manager/test/ajax1",
          success: function(result){
                alert("Ajax1");
                $("#selectClassify").html("");
                var html = "";
                var selectJson = result.downList;
                $.each(selectJson, function(i, item) {
                    html = html+"<option value='" + item + "'>" + item + "</option>";
                });
                $("#selectClassify").append(html);
                
          }
      });
 }
 
function Ajax2(){
    $.ajax({
          cache : false,
          url:"<%=basePath%>/manager/test/ajax2",
          success: function(result){
             alert("Ajax2");
             $("#selectClassify").val(result.kind);
          }
      });
 }
</script>

异步请求是并行的,执行的快与慢,要看响应的数据量的大小及后台逻辑的复杂程度

要解决这个问题也不难,这里提供两种解决方案:

(1)Ajax2()方法的执行放到Ajax1()的success回调函数的最后一行。

(2)Ajax1()的异步请求方法中,增加一个回调函数 :complete : Ajax2

ajax上传文件的方法

var formData = new FormData();
var name = $("input").val();
formData.append("file",$("#upload")[0].files[0]);
formData.append("name",name);
$.ajax({ 
url : Url, 
type : 'POST', 
data : formData, 
// 告诉jQuery不要去处理发送的数据,用于对data参数进行序列化处理 这里必须false
processData : false, 
// 告诉jQuery不要去设置Content-Type请求头
contentType : false,
beforeSend:function(){
console.log("正在进行,请稍候");
},
success : function(responseStr) { 
if(responseStr.status===0){
console.log("成功"+responseStr);
}else{
console.log("失败");
}
}, 
error : function(responseStr) { 
console.log("error");
} 
});

没有设置contentType: false 这个参数
在这里插入图片描述
设置了contentType: false这个参数
在这里插入图片描述

我们作为程序员,研究问题还是要仔细深入一点的。当你对原理了解的有够透彻,开发起来也就得心应手了,很多开发中的问题和疑惑也就迎刃而解了,而且在面对其他问题的时候也可做到触类旁通。当然在开发中没有太多的时间让你去研究原理,开发中要以实现功能为前提,可等项目上线的后,你有大把的时间或者空余的时间,你大可去刨根问底,深入的去研究一项技术,为觉得这对一名程序员的成长是很重要的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无极的移动代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值