ajax 事件使用

error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},

扩展阅读:

通过XMLHttpRequest对象向服务器发送请求。
onreadystatechange事件处理函数,它处理来自服务器的触发,而不是处理由用户引起的触发。每当readystatechange事件触发它就执行,而readystatechange事件都是由服务器触发的。每当readyState属性改变,那么onreadystatechange就被触发
var request = getHTTPObject();
if (request) {
  request.onreadystatechange = doSomething;
}

这里注意:doSomething不要括号。表明是函数,加上括号表明是函数执行的结果。doSomethiing是自己编写的函数。

readyState
他包括四个状态:
0 为初始化——open函数还没调用。
1 正在加载——open函数已调用,但send函数没有调用。
2 已加载  ——send函数已调用。
3 正在交互——服务器正在发送响应。
4 完成    ——服务器完成发送响应。

实际中,不是那么的状态,你可以简单使用:
function doSomething() {
  if (request.readyState == 4) {
// do something with the response
  }
}
尽管每次onreadystatechage被服务器触发,但是只有readyState==4的时候才执行代码

status
浏览器在发送请求时,服务器在发送响应时都会发送headers,headers包括文档信息:
文档类型content type (HTML, XML, and so on)
字符编码 (utf-8, iso-8859-1, and so on).

在服务器发送的响应中最重要的是status code:
404:“Not Found”
403:“Forbidden”
500:“Internal Server Error”
200:“OK”这个最常用
304:“Not Modified”

function doSomething() {
  if (request.readyState == 4) {
    if (request.status == 200) {
// 表明服务器发送响应成功
    }
  }
}

opera浏览器有时返回304,所以下面的代码改进
function doSomething() {
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
    }
  }
}

时间: 2024-10-14 21:13:17

ajax 事件使用的相关文章

jQuery全局Ajax事件处理器

1.  .ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) ) 每当一个Ajax请求完成,jQuery就会触发ajaxComplete事件,在这个时间点所有处理函数会使用.ajaxComplete()方法注册并执行. <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></s

jQuery中Ajax事件beforesend及各参数含义

jQuery中Ajax事件beforesend及各参数含义 2014-01-21 22:27 1678人阅读 评论(0) 收藏 举报  分类: jquery(36)  转自:http://blog.sina.com.cn/s/blog_609f9fdd0100wprz.html Ajax会触发很多事件. 有两种事件,一种是局部事件,一种是全局事件: 局部事件:通过$.ajax来调用并且分配. $.ajax({ beforeSend: function(){ // Handle the befor

jQuery中Ajax事件顺序及各参数含义

Ajax会触发很多事件.有两种事件,一种是局部事件,一种是全局事件: 局部事件:通过$.ajax来调用并且分配. $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ // Handle the complete event } // ... }); 全局事件:可以用bind来绑定,用unbind来取消绑定.这个跟click/mousedown/keyup等事件类似.但他可

如何给a标签绑定ajax事件

<a href="review?action=delete&id=${review.id}&articleId=${review.articleId}"class="black" id="reviewDelete"> [删除] </a> 修改为: <a href="javascript:void(0)" action="review?action=delete&i

js学习总结----jQuery之动画 ajax 事件

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> //ajax $.ajax({ url:'json/test.txt?_='+Math.random(), type:"get&q

jquery ajax 事件执行顺序

jquery中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success 5.ajaxSuccess(全局事件) 6.error 7.ajaxError (全局事件) 8.complete 9.ajaxComplete(全局事件) 10.ajaxStop(全局事件) Ajax中success与complete的关系 $.ajax({ type: "get|post", url: url, dataType:

jquery ajax事件

$.ajax({ type : 'POST', url : 'user.php', data : $('form').serialize(), success : function (response, status, xhr) { alert('请求成功后'); }, complete : function () { alert('请求完成后,不管是否失败成功'); }, beforeSend : function () { alert('发送请求之前执行'); }, error : func

Camstar MES 5.8 發現Ajax事件失效

從Camstar4.5升級到5.8後,發現原來用戶在4.5下可以正常使用的不良信息收集功能,列出的不良只有第一頁可以顯示,無法自動裝載下一頁. 嘗試發出,IE以下這個選項沒有選中,選中後,就可以正常工作了.   在此作為一個工作筆記,如果有人剛好碰到,也算好事. Technorati 标签: Ajax,MES,Camstar

ajax事件监听函数

<input type="text" name="username"/><input type="text" name="password"/><input type="submit" value="提交" /> <script src='jquery.js'></script><script> $('form').