noo*_*ode 181 javascript ajax jquery
我有一份注册表,我正在使用$.ajax它提交.
这是我的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;
});
});
Run Code Online (Sandbox Code Playgroud)
在我的submit1.php文件中,我检查数据库中是否存在字段电子邮件地址和用户名.如果在没有页面刷新的情况下存在这些值,我希望显示错误消息.
如何将此添加到我的AJAX请求的成功回调中?
Tat*_*nen 364
结果可能不是JSON格式,所以当jQuery尝试解析它时,它会失败.您可以使用error:回调函数捕获错误.
你似乎不需要在该函数中使用JSON,因此你也可以取出该dataType: 'json'行.
js *_*bee 16
虽然问题已经解决,但我希望它能帮助其他人.
我犯了一个错误,试图直接使用这样的函数(成功: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;
}
Run Code Online (Sandbox Code Playgroud)
如果不使用匿名函数作为包装器,即使webservice返回异常,也会调用OnSuccess.
All*_*len 15
我尝试删除dataType行,但它对我不起作用.我通过使用"完整"而不是"成功"作为回调解决了这个问题.IE中的成功回调仍然失败,但是因为我的脚本运行并且完成了所有我关心的事情.
$.ajax({
type: 'POST',
url: 'somescript.php',
data: someData,
complete: function(jqXHR) {
if(jqXHR.readyState === 4) {
... run some code ...
}
}
});
Run Code Online (Sandbox Code Playgroud)
在jQuery 1.5中你也可以这样做.
var ajax = $.ajax({
type: 'POST',
url: 'somescript.php',
data: 'someData'
});
ajax.complete(function(jqXHR){
if(jqXHR.readyState === 4) {
... run some code ...
}
});
Run Code Online (Sandbox Code Playgroud)
小智 10
在PHP文件中生成JSON格式化数据之前,请确保不打印(回显或打印)任何文本/数据.这可以解释你得到了一个200美元 - 但是你的成功事件仍然在你的javascript中失败了.您可以通过在firebug中查看POST submit1.php的"网络 - 应答"部分来验证脚本接收的内容.
alert()在您的success回调中放一个,以确保它完全被调用。
如果不是,那仅仅是因为即使您设法命中服务器,请求也根本没有成功。合理的原因可能是超时到期,或者您的php代码中的某些异常引发了异常。
如果尚未安装用于firefox的firebug插件,请检查AJAX回调。您将能够看到响应以及响应是否收到成功(200 OK)响应。您还可以alert()在complete 回调函数中放置另一个,该回调函数必须被调用。
| 归档时间: |
|
| 查看次数: |
262737 次 |
| 最近记录: |