试图了解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");
};
答案 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);
}
});