28

我在 jQuery 代码中有以下函数:

btnLogin.on('click', function(e,errorMessage){
    console.log('my message' + errorMessage);
    e.preventDefault();

    return $.ajax({
        type: 'POST',
        url: 'loginCheck',
        data: $(formLogin).serialize(),
        dataType: 'json'  
    }).promise();
    console.log('my message' + errorMessage);
});

我正在尝试做的事情:我正在尝试 console.log 错误消息。如果 console.log 行在 ajax 函数之上,我会得到未定义,如果 console.log 在它下面,则什么都没有。

谁能告诉我如何获取这个或另一个新函数中显示的 errorMessage 的值?

此外,任何有关使用 Ajax 检查 php 登录表单的链接都将受到高度赞赏

问候,佐兰

4

7 回答 7

13

为什么不处理调用中的错误?

IE

$.ajax({
    type: 'POST',
    url: 'loginCheck',
    data: $(formLogin).serialize(),
    dataType: 'json',
    error: function(req, err){ console.log('my message' + err); }
});
于 2012-08-19T10:32:23.747 回答
9

您可以尝试这样的事情(从jQuery Ajax 示例中复制)

var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  console.log( msg );
});

request.fail(function(jqXHR, textStatus) {
  console.log( "Request failed: " + textStatus );
});

您的原始代码的问题在于您传递给 on 函数的错误参数实际上并不是来自任何地方。JQuery on 不返回第二个参数,即使返回,它也与单击事件有关,而不是与 Ajax 调用有关。

于 2012-08-21T10:02:48.473 回答
8

尝试这样的事情:

$.ajax({
    type: 'POST',
    url: 'loginCheck',
    data: $(formLogin).serialize(),
    dataType: 'json',
    success: function (textStatus, status) {
        console.log(textStatus);
        console.log(status);
    },
    error: function(xhr, textStatus, error) {
        console.log(xhr.responseText);
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
    }
});
于 2018-05-23T16:32:40.947 回答
7
$.ajax({
    type: 'POST',
    url: 'loginCheck',
    data: $(formLogin).serialize(),    
    success: function(result){
        console.log('my message' + result);
    }
});
于 2013-07-10T07:18:55.933 回答
1

如果调用本身失败,将触发 Ajax 调用错误处理程序。

如果登录凭据未通过,您可能正在尝试从服务器获取错误。在这种情况下,您需要检查服务器响应 json 对象并显示适当的消息。

e.preventDefault();
$.ajax(
{
    type: 'POST',
    url: requestURI,
    data: $(formLogin).serialize(),
    dataType: 'json',
    success: function(result){
        if(result.hasError == true)
        {
            if(result.error_code == 'AUTH_FAILURE')
            {
                //wrong password
                console.log('Recieved authentication error');
                $('#login_errors_auth').fadeIn();
            }
            else
            {
                //generic error here
                $('#login_errors_unknown').fadeIn();
            }
        }
    }
});

这里,“结果”是从服务器返回的 json 对象,其结构可能如下:

$return = array(
        'hasError' => !$validPassword,
        'error_code' => 'AUTH_FAILURE'
);
die(jsonEncode($return));
于 2012-08-19T12:49:11.730 回答
0

如果您想检查您的网址。我想你正在使用 Chrome。您可以转到 chrome 控制台,URL 将显示在“XHR 完成加载:”下

于 2018-01-10T08:34:10.203 回答
-1

在 Chrome 中,右键单击控制台并选中“保留登录导航”。

于 2014-03-16T04:20:01.057 回答