为什么AJAX调用仅在Firefox中提供错误超时响应

时间:2013-04-18 21:53:11

标签: php jquery ajax

我的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();
    }        
}

1 个答案:

答案 0 :(得分:0)

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

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');
    });
}