【问题标题】:JQuery / $.ajax /alert in .fail, but it succeed.fail 中的 JQuery / $.ajax /alert,但它成功了
【发布时间】:2016-03-15 19:23:35
【问题描述】:

我在 JQuery 中使用 ajax 时遇到了一个小问题。 让我解释一下:用户输入登录名、密码、姓名、电子邮件……然后我使用 servlet 创建用户帐户。

$(function(){
$("#subinsc").click(function(){
    var nom=$("#nom").val();
    var prenom=$("#prenom").val();
    var email=$("#email").val();
    var login=$("#login").val();
    var password1=$("#pass1").val();
    var password2=$("#pass2").val();

//verif_form_inscription just check if login and password are ok.
var ok=verif_form_inscription(login,password1,password2);
if(ok){
    $.ajax({
        type:"get",
        async:false,
        url: "HERE IS THE CREATEACCOUNT SERVLET",
        data: {mail : email,login:login,password:password1,nom:nom,prenom:prenom},
        success:function(res){
            alert("ok");
            $(document).ready(function(){
                $("#popup").show(800);
                $("#insc").replaceWith(jQuery("#popup"));
            }); 
        },
        error:function(res){
            console.log(res);
            alert("fail servlet");
        }

})
};
});})

servlet 始终“工作”,用户在数据库中在屏幕上我有 .fail 警报而不是成功警报和 #popup div 说“欢迎,您已注册”。

这是应答器的形式:

<form id="insc" method="get" action="">

还有提交应答器:

<input type="submit" value="SIGN UP" id="subinsc"/>

如果有人可以帮助我... 在此先感谢:)

编辑:已解决。

【问题讨论】:

  • 您是否检查了网络选项卡以分析 ajax 调用的响应?
  • 我试图分析做console.log(res)(显然,这里res是一个对象),我有关于Ajax的东西,但我不知道如何分析。
  • API 类似于 jqXHR.done(function( data, textStatus, jqXHR ) {}) 和 qXHR.fail(function( jqXHR, textStatus, errorThrown ) {})。您可以从 jqXHR.status 获取状态码
  • 您使用什么浏览器进行测试?我知道一些最新版本的 Chrome 不允许 async: false。
  • 我正在使用 Mozilla。我不知道它是否有帮助,但是当我分析时,我有 readyState:0, Status:0 StatusText: [Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: @987654321 @ :: .send :: 第 4 行“数据:无]。

标签: javascript jquery html ajax servlets


【解决方案1】:

您正在混合callbackdeferred

要么这样写

$.ajax({
        ..,
        success:function(){
            alert("Ok, succeed");
            ..
        },
        error : function(){
            alert("Fail createuser");
        }
        })

$.ajax({
        ...
    })
    .done(function() {
        alert("succee");
    }).fail(function() {
        alert("Fail createuser");
    })

【讨论】:

  • 即使我不混合回调和延迟,我仍然有同样的问题:它出错(或失败)但 servlet “工作”。
  • 没关系,伙计们,我发现了问题(不知道为什么,但是 WAR 导出完成了这项工作......)感谢您的帮助。
猜你喜欢
  • 2016-08-27
  • 2023-03-23
  • 2015-01-20
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 2012-10-21
  • 1970-01-01
相关资源
最近更新 更多