jq_ajax

jq下的ajax多种用法

由于个人喜好 在代码中我会将request写成req,response写成resp

  • load(url,[data],[callback])
  • $.ajax(url,[settings])
  • $.get(url,[data],[callback],[type])
  • $.getJSON(url,[data],[callback])
  • $.getScript(url,[callback])
  • $.post(url,[data],[fn],[type])
    jq下的ajax大致就这些方式,看起来有点多,我会一个一个介绍大致的用法,当然我会先介绍一些常用的方法,不常用的我将放在后面介绍,有兴趣的可以往下翻翻看

$.ajax(url,[settings])

这个放在第一位讲因为他的功能很多,后面的那些都是简化后的功能,$.ajax能处理的东西比较多,也比较复杂些(相对于他的其他方法)

//首先最简单的一个请求 get 请求 ,url(调用servlet)  success 已经请求成功的回调函数
$.ajax({
    type:"GET",
    url:"check.do?name=name",
    success:function (data) {
        alert(1);
    }
 });

上面是实现一个最简单的ajax请求
接下来来点理论知识
$.ajax的函数

  • beforeSend 在请求之前调用,并且传入一个XMLHttpRequest作为参数。作为ajax的一个事件
  • error 在请求出错时调用,传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话)
  • success 在请求成功时调用,参数有一个data接收处理过后的数据
  • dataFilter 给Ajax返回的原始数据的进行预处理的函数。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数,并且必须返回新的数据(可能是处理过的)传递给success回调函数
  • complete 当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象,以及一个包含成功或错误代码的字符串

这些函数中常用的是success方法和error方法,success接收请求成功后的数据,用来自己做需求处理, error方法是处理错误(一般情况下其实使用$.post即可完成基本的ajax操作,不先介绍post是因为post不能处理error,所以拿比较全面的$.ajax出来先讲)

//这是setting比较多的请求
$.ajax({
       type:"post",
       url:"check.do",
       cache:false,
       async:true,
       data:"name=Jhon&age=123",
       dataType:"json",
       processData: false,
       success:function (data) {
           alert(1);
       },
       error:function(e){
           console.log(e)//请求失败是执行这里的函数
       }
   });

这里大致介绍下,具体使用情况还要靠你们自己亲身体验

  • cache (默认: true,dataType为script和jsonp时默认为false) jQuery 1.2 新功能,设置为 false 将不缓存此页面
  • async (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行
  • data 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 “&foo=bar1&foo=bar2”
  • processData (默认: true) 默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 “application/x-www-form-urlencoded”。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false
  • dataType预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
    • xml 返回 XML 文档,可用 jQuery 处理
    • html 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行
    • script 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。’’‘注意:’’'在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
    • json 返回 JSON 数据
    • jsonp JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数
    • text 返回纯文本字符串

其实需要了解的也就是这些东西了,如果想熟练掌握就多去实验实验就好了.

//不过需要掌握的就这几个就行了,其他的没记住也可以随时翻阅资料查看即可
$.ajax({
      type:"post",
      url:"check.do",
      data:"name=Jhon&age=123",
      dataType:"xml",
      success:function (data) {
          alert($(data).find("user").html());
      },
      error:function(e){
          console.log(e)//请求失败是执行这里的函数
      }
  });

$.post(url,[data],[fn],[type])

post相对于ajax就简单许多,因为创建这个就是为了简化异步刷新的代码量,如果不考虑程序会有请求错误的话,建议优先使用这个,个人感觉很方便

//在不考虑发送数据以及接收数据的情况下一个简单的post可以这样写
$.post("check.do");

这样写即是向后台发送了请求 用[ ]括起来的都是可选项,所以只有url一个必选项这里简单介绍下吧

  • data 请求时发送给服务器的数据,也必须是 key/value的形式
  • fn 回调函数,参数可以有一个data作为接收服务器传回的参数
  • type 指定服务器返回的是什么数据

这里讲一下 key/value形式的数据有哪些?

  • 最简单的就像拼接在url后面数值 xxx=xxx&xxx=xxx;
  • 第二就是json {xxx:xxx,xxxx:xxxx}

这个相对简单,我就举两个例子吧
json格式

//服务器响应  记得修改请求头为text/json
	resp.setContentType("text/json;charset=utf-8");
    req.setCharacterEncoding("utf-8");
    PrintWriter out = resp.getWriter();
    Map<String,Integer> map  = new HashMap<>();
    map.put("name",123);
    map.put("age",124);
    Gson gson = new Gson();
    String str = gson.toJson(map);//这里用了一个jar包转化json格式,大家可以自行创建json数据
    out.println(str);

//指定接收数据为json  
//使用json传值到服务器时 不需要用双引号包起来,只有特定为字符串的数据才需要用双引号
$.post("check.do",{name:123},function (data) {
    alert(data.name); //得到的是123
 },"json");

//xml的话 服务器方面
resp.setContentType("text/xml;charset=utf-8");
resp.getWriter().print("<users><user>123</user></users>");

//页面
 $.post("check.do",{name:123},function (data) {
      alert($(data).find("user").html());//得到123
  },"xml");
文本格式我就不演示了,只需将请求头修改成text/html 然后写数据即可

以上就是post的使用

$.get(url,[data],[callback],[type])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值