jQuery Ajax 的 load()方式

 load() 方法

  load() 是所有jQuery工具中最简单的,向它传入一个URL,它会异步加载URL内的内容,然后将内容插入每一个选中元素中,替换掉已经存在的任何内容。 例如

 

$("#load-div").load("getElementSize.html");

 

也可以获取URL文档的一部分内容, 页面后面添加元素,必须要加空格(不然有时候会被认为是hash#)。 只获取一个 id="p1"  的元素 在这条URL页面里面,然后替换load-div里面的内容。

$("#load-div").load("getElementSize.html #p1");

  

除了必须的URL参数,load()方法还接受两个可选参数。第一个表示的数据,可以追加到URL后面,或者与请求一起发送。如果传入的是字符串,则会追加到URL后面(放在“?” 或"&"  )。如果传入对象会被转化为一个用"&"分隔的名/值对后与请求一起发送。通常情况下,load()方法发送HTTP GET请求,但是如果传入数据对象,则它会发送POST请求。 

 

//string
$("#load-div").load("getElementSize.html", { zipcode=01234 } );

//object
$("#load-div").load("getElementSize.html", { zipcode:01234, units: 'F' } );

  

load()的另一个选参数是回调函数。 

$("#success").load("/not-here.php", function(response, status, xhr) {   //response content, status , XMLHttpRequest
   if (status == "success") {
       console.log("success");
    }

  if (status == "error") {
    var msg = "Sorry but there was an error: ";
    $("#error").html(msg + xhr.status + " " + xhr.statusText);
  }
});

  

 

回调函数第一个参数 response是返回的内容,

status 是状态参数,:

success: 表示请求成功完成

notmodified: 该状态码表示请求已经完成,但服务器返回的相应内容是HTTP 304 “Not Modified”,表示请求的URL内容和上次请求的相同,没有变化

error: 表示请求没有完成,原因是某些HTTP错误,更多细节,可以检查传入每一个回调函数中的XMLHttpRequest对象的HHTP状态码来获取

timeout: 如果Ajax请求没有在选定的超时区间内完成,会调用错误回调,并传入该状态码,默认情况下Jquery请求没有超时限定,只有指定了timeout选项时才能看到该状态码

parsererror: 该状态码表示HTTP请求已成功请求,但jQuery无法按照期望的方式解析。

posted @ 2016-06-02 14:58  facial  阅读(1520)  评论(0编辑  收藏  举报