我有一个注册表,正在使用$.ajax
提交它。
这是我的请求:
$(document).ready(function() {
$("form#regist").submit(function() {
var str = $("#regist").serialize();
$.ajax({
type: 'POST',
url: 'submit1.php',
data: $("#regist").serialize(),
dataType: 'json',
success: function() {
$("#loading").append("<h2>you are here</h2>");
}
});
return false;
});
});
在我的submit1.php文件中,我检查数据库中是否存在字段email address和username。如果这些值在没有页面刷新的情况下存在,我希望显示一条错误消息。
如何将其添加到AJAX请求的成功回调中?
发布于 2009-12-28 21:41:57
结果可能不是JSON格式,所以当jQuery尝试这样解析它时,它会失败。您可以使用error:
回调函数来捕获错误。
无论如何,在该函数中似乎不需要JSON,所以也可以去掉dataType: 'json'
行。
发布于 2010-09-19 21:12:06
虽然这个问题已经解决了,但我补充这一点是希望它能对其他人有所帮助。
我犯了一个错误,并尝试直接使用这样的函数(成功: OnSuccess(productID))。但是你必须先传递一个匿名函数:
function callWebService(cartObject) {
$.ajax({
type: "POST",
url: "http://localhost/AspNetWebService.asmx/YourMethodName",
data: cartObject,
contentType: "application/x-www-form-urlencoded",
dataType: "html",
success: function () {
OnSuccess(cartObject.productID)
},
error: function () {
OnError(cartObject.productID)
},
complete: function () {
// Handle the complete event
alert("ajax completed " + cartObject.productID);
}
}); // end Ajax
return false;
}
如果不使用匿名函数作为包装器,则即使the服务返回异常,也会调用OnSuccess。
发布于 2011-03-19 21:35:48
我尝试删除dataType行,但对我不起作用。我通过使用"complete“而不是"success”作为回调来解决这个问题。在IE中,成功回调仍然失败,但由于我的脚本无论如何都会运行和完成,所以我所关心的就是这些。
$.ajax({
type: 'POST',
url: 'somescript.php',
data: someData,
complete: function(jqXHR) {
if(jqXHR.readyState === 4) {
... run some code ...
}
}
});
在jQuery 1.5中,你也可以这样做。
var ajax = $.ajax({
type: 'POST',
url: 'somescript.php',
data: 'someData'
});
ajax.complete(function(jqXHR){
if(jqXHR.readyState === 4) {
... run some code ...
}
});
https://stackoverflow.com/questions/1969476
复制相似问题