jquery ajax http状态代码

时间:2012-10-06 12:05:04

标签: jquery ajax

我现在正在将脚本更改为jquery。这是我的旧javascript:

var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject ? new window.ActiveXObject("Microsoft.XMLHTTP") : false);
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);

function updatePage() {
        if (request.readyState == 4) {
                if (request.status == 200) {
                    var response = request.responseText;
                    doSomething();
                } else if (request.status == 304) {
                    doSomethingElse();
                } else {
                }
        }
}

我现在想将其更改为jquery-ajax:

request = $.ajax({
    type: "GET",
    url: url,
    data: data,
    success: updatePage
});

如何测试请求返回的状态代码(和responseText),就像我在旧脚本中所做的那样?

2 个答案:

答案 0 :(得分:19)

试试这个:

request = $.ajax({
    type: "GET",
    url: url,
    data: data,
    statusCode: {
      200: function() {
        doSomething();
       },
      304:function(){
        doSomethingElse();
       }
     }
});

或:

request = $.ajax({
    type: "GET",
    url: url,
    data: data,
    complete: function(e, xhr, settings){
       if(e.status === 200){

       }else if(e.status === 304){

       }else{

       }
    }
});

答案 1 :(得分:1)

您需要将此请求绑定到按钮单击等事件 像

$('#btn').click({function(){
$.ajax({
    type: "GET",
    url: url,
    data: data,
    success: updatePage
});
});

你不需要真正保持对变量的请求,因为 jQuery ajax 有一个成功回调,它将帮助你执行后期成功代码