ajax成功处理程序有什么意义?

时间:2014-07-22 11:16:21

标签: jquery ajax

试图了解ajax ......

在我的ajax调用中,我有一个成功的处理程序。我还有一个目标url,ajax正在抛出数据(我能想到描述它的最佳方式)。

  • 如果我的目标网址有效 - 成功。
  • 如果我的目标网址拼写错误 - 成功。
  • 如果我的目标网址是垃圾 - 成功。

那么......它的目的是什么?

// 1. Put a trigger on the right button 
$("#submitButton").click(function(){
    alert("trigger event");

// 2. serialise the form data
    var formData = $("#myForm").serializeArray();

// 3. make an ajax call to the controller

    $.ajax({
        type: "POST",
        url: "controllerThatDoesntExist/function",
        data: formData,
        success: successHandler,
        dataType: "text"
        });

});

function successHandler(data, textStatus, jqXHR)
    {
        alert("Success is 100% guaranteed");  
    };

1 个答案:

答案 0 :(得分:3)

如果你看到success函数调用了不存在的资源,则意味着正在加载资源的服务器正在发送使用HTTP状态代码的无效响应200而不是4xx系列中的一个。问题是服务器,而不是jQuery的ajax功能。

如果服务器执行了与无效网址相关的操作,则ajax不会致电success,而是会调用error(以及类似的功能)新的Promise东西。

这是一个成功的请求:http://jsfiddle.net/5F7NV/

// Successful request
var xhr = $.ajax({
    url: "/",
    success: function(html) {
        console.log("Success, got back " + html.length + " characters of HTML");
    },
    error: function(jqXHR) {
        console.log("Error, status code: " + jqXHR.status);
    }
});

这是一个不成功的请求:http://jsfiddle.net/5F7NV/1

// Request for something that doesn't exist
$.ajax({
    url: "/blargleflap",
    success: function(html) {
        console.log("Success");
    },
    error: function(jqXHR) {
        console.log("Error, status code: " + jqXHR.status);
    }
});