ajax详解

来源:互联网 发布:万博软件 周末 编辑:程序博客网 时间:2024/06/04 00:41
$.ajax({


//请求的方式
type:"get",或'post'默认get


//请求的路径
url:"ajaxAllMovie.do",


// 传参的数据
data:{key:value,key1:value1},
eg:data : {'phone':$("input[name='phone']").val(),'address':$("input[name='address']").val()},


//后台返回给前台的参数据格式
dataType:"json",


//同步与异步
如上:false为同步,这个 function()方法中的Ajax请求将整个浏览器锁死, 只有后台执行,并返回结果结束后,才可以执行其它操作。
当async: true 时,ajax请求是异步的。但是其中有个问题:function()中的ajax请求和其后面的操作是异步执行的,
那么当后台还未执行完,就可能已经执行了 ajax请求后面的操作,如: alert(temp+'end');然而,
temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。因为当我们查看这时的 Request headers,会发现还是有分界符。这就是因为当我们在 form 标签中设置了enctype = "multipart/form-data",这样请求中的 contentType 就会默认为 multipart/form-data 。而我们在 ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。
  async: false,(默认是true);




//重要是这个定义字符编码,默认为:"application/x-www-form-urlencoded;charset=utf-8",内容编码类型满足大多数情况。通俗的讲就是:前台提交的数据格式,在使用ajax上传文件时:在其中先封装一个formData对象,然后使用post方法将文件传给服务器,这里我们就要先说说在http中传输文件的问题,起初,http协议中没有上传文件的功能,此时contentType:false,
 contentType:"application/x-www-form-urlencoded;charset=utf-8",


//默认为true,设置为false将不会从浏览器的缓存加载请求信息
cache:false,


//默认为true,默认情况下,发送的数据将会被转换为对象(从技术的角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded",如果发送DOM树信息或者其他不希望转换的信息,请设置为false。
processData:false,  
 
//请求成功后返回的数据 这里的e返回是json对象
success:function(movie){
//var movie = $.parseJSON(e);
 var content = "";
 for(var i=0;i<movie.length;i++){
  content += "<tr height=\"30\">"
   +"<td align=\"center\"><input type=\"checkbox\"/></td>"
  +"<td align=\"center\">"+movie[i].id+"</td>"
  +"<td align=\"center\">"+movie[i].movieName+"</td>"
   +"<td align=\"center\">"+movie[i].price+"</td></tr>"
  }
$("#movie").append(content);
},
  error: function (returndata) {  
            alert("失败,请检查数据是否正常连接"+returndata);  
        }  
});               
1 0