在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对象,以及一个包含成功或错误代码的字符串
- },
- });
转载于:https://blog.51cto.com/3760651/1100311