JavaScript开关不适用于jQuery AJAX响应

时间:2016-09-09 20:16:08

标签: javascript php jquery ajax switch-statement

更新 问题解决了,我使用了错误的字符编码。

我正在尝试为Web应用程序构建登录。过程如下:

  1. jQuery将带有用户名和密码的AJAX请求发送到PHP后端。
  2. PHP后端验证值,设置会话变量并将 missingAuthField unknownUser wrongPassword 作为普通字符串返回(Content-Type也是文/普通)。
  3. AJAX请求的成功事件必须区分响应,并且应该显示错误消息或者必须重新加载页面(如果成功登录)。
  4. 问题出现在第三步。只有当响应是“ missingAuthField ”时,才会发生想要的操作,但是如果响应是例如“ unknownUser ”,没有任何反应 顺便说一句:我在我的项目中使用jQuery 1.10.2和材料设计1.5库。

    相关功能:

    mywebapp.authenticate = function (){
        var user = $("#t_auth_user").val();
        var pass = $("#t_auth_pass").val();
        $("#loading").removeClass("hidden");
        $("#hint_auth").text("");
        $.ajax("backend/auth.php", {
            cache: false,
            method: "POST",
            data: {
                "user": user,
                "pass": pass
            },
            success: function (resp){
                console.log(resp); // console output works fine with each response
                switch(resp){
                    case "missingAuthField":
                       $("#hint_auth").text("not everything entered");
                       break;
                    case "unknownUser":
                       $("#hint_auth").text("unknown user");
                       break;
                    case "wrongPassword":
                       $("#hint_auth").text("wrong pass");
                       break;
                    case "successful":
                       document.location.reload();
                       break;
                };
            },
            error: function (e, type){
                // my default error handling
            }
        });
    };
    

    感谢您的每一个答案! ~Erik

0 个答案:

没有答案