0

我的ajax调用

我进行了 ajax 调用以检查该电子邮件地址是否已用于参与。php 文件在未使用时返回 0,如果已使用则返回 1。当它被使用时,它会制作一个错误标签来说明。

这在 Chrome、Safari、Internet Explorer 中完美运行。但是在 Firefox 中是一个完全的痛苦。它检查并给出正确的响应,但 5 秒后它给出了超时。

我有另一个 ajax 调用将所有数据放入数据库,它有完全相同的问题。

我做错了什么?

function controleerDeelnemerEmail(){

    var emailVal = $('#email').val();

    $.ajax( {

        type: 'POST',
        url:'?page=home&action=check',
        dataType:'text',
        data: {'email':emailVal}, 
        success: function( data ){

            data = parseInt(data);

            if(data == 1){

                if( $(".emailerror").length == 0 ){
                    var error = "<label for='email' generated='true' class='error emailerror' style=''>Dit e-mailadres wordt al gebruikt</label>"
                    $(error).insertBefore( $('#email') );    
                }                            
            }
        }
    })
}

服务器端

公共功能检查(){

    if(!empty($_POST)){

        $content = $this->deelnemerDAO->controleerDeelnemerEmail( $_POST['email'] );

        if( $content == 1 ){
            echo 1;
        }else{
            echo 0;
        }
        exit();
    }        
}
4

1 回答 1

0

您应该添加一个错误回调以查看返回的答案是否为 1。

错误的类型可以被ajax视为错误。

function controleerDeelnemerEmail() {
    var emailVal = $('#email').val();
    $.ajax({
        type: 'POST',
        url:'?page=home&action=check',
        dataType:'text',
        data: {
            'email': emailVal
        }
    }).done(function (data) {
        // equivalent to success callback
        data = parseInt(data);
        if (data == 1) {
            if ($(".emailerror").length === 0) {
                var error = $("<label>", {
                    'for': 'email',
                    'generated': 'true',
                    'class': 'error emailerror'
                }).text("Dit e-mailadres wordt al gebruikt").insertBefore($('#email'));
            }                            
        }
    }).fail(function (response, status) {
        alert('fail');
    });
}
于 2013-04-18T21:57:18.983 回答