在JQuery中,可用通过使用$.ajax(),$.get(),$.post()方式实现异步请求,这些方法可以不带任何参数做请求,返回一个xmlhttprequest对象,
- $.ajax({
- url: "xxx.do?",//包含发送请求的URL字符串,后面也可以直接带参数,例如:"xxx.do?name1="+value1+"&name2="+value2.
- method: "post",//默认为get.get和post的详细区别参考HTTP协议详解
- data: {
- name1:"value1",
- name2:"value2"
- },//data中包含的数据可以是一个queryString:name1=value1&name2=value2,也可以为一个映射{name1:"value1",nam2:"value2"}.如果是后者,在请求
- 过程中转换成QueryString,这是处理过程可以通过设置processData:false来避免。
- //如果我们希望发送一个XML对象给服务器时,这种处理可能并不合适。并且在这种情况下,我们也应当改变contentType选项的值,
- 用其他合适的MIME类型来取代默认的 application/x-www-form-urlencoded 。
- dataType: "json",//请求返回结果的数据类型。还可以设置其它类型:html,text,json,jsonp.
- text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传
- 递给success回调函数.
- //我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明 text/xml
- 或者 application/xml 来获得一致的结果。
- //如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的,指定script类型的话,
- 也会先执行服务器端生成JavaScript,然后再把脚本作为一个文本数据返回。
- async: "false",//默认为true,即请求为异步类型。如果设置为false,则强制当前请求为同步,执行当前请求时,页面内其他所有代码停止执行,
- 请求完成。
- cache: "false",//默认情况下,请求总会被发出去,但浏览器有可能从他的缓存中调取数据。要禁止使用缓存的结果,可以设置cache参数为false。
- beforeSend: function(XMLHttpRequest){
- //在发送请求之前调用,传入一个XMLHttpRequest对象作为参数
- },
- error: function(XMLHttpRequest,errorMsg,errorMsg){
- //发生错误时调用,传入参数:XMLHttpRequest对象,errorMsg(描述错误类型的字符串)errorMsg(异常对象)
- },
- dataFilter: function(data.dataType){
- //请求成功后调用,传入返回的数据和dataType的值。返回新的数据传递给success回调函数
- },
- success: function(data){
- //当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
- },
- complete: function(XMLHttpRequest){
- //当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象,以及一个包含成功或错误代码的字符串
- },
- });