0

フォームデータをajax経由でPHPスクリプトに送信することになっているスクリプトがあります。残念ながら、それは機能していません。$。ajaxにエラーがあることはわかっていますが、そのエラーを表示する方法がわかりません。現時点では、エラーが「失敗」を警告するように設定しています。エラーの原因を見つけることができずに、この問題を解決することは非常に難しいことが証明されていますが、どうすればこのエラーを表示できますか?ajaxのデバッグ経験はありません:Sありがとうございます!

        $('.jSubmit').click(function() {

        var form_data = $(this).closest('form').serialize();
        var form_id   = $(this).closest('form').attr("id");

        function text_success(return_data) {

            if(form_id == "page_form") {
            $('#trans_div').append('<div id="pop_up"><div>Thank you, we will be in touch shortly.</div></div>');
            $('#trans_div').css('display','block').animate({opacity: 0.9}, 800, function() {

                $('#trans_div').delay(1500).animate({opacity: 0.0}, 800, function() {

                        $(this).css('display','none');

                });

            });

            $(this).closest('form').find("input[type=text], textarea").val("");
            }
            else
            {
            //$('.form_bottom_text').html(return_data);
            alert('no');
            }

        }


        function text_failure() {

            if(form_id == "page_form") {
            //$('#trans_div').css('display','block').animate({opacity: 0.9});
            //$('#trans_div').append('<div id="pop_up"><div>Failed to send message.</div></div>');
            //$(this).closest('form').find("input[type=text], textarea").val("");
            alert('failed');
            }
            else
            {
            $('.form_bottom_text').html('Error Occurred');
            }

        }


            $.ajax ({
            url:"form.php",
            type:'POST',
            data: form_data,
            success: function(return_data) {
                text_success(return_data);
                },
            error: function() {
                //text_failure();
                alert('fail');
                }               
            });


        });
4

3 に答える 3

0

実装しているコールバックを十分に活用して、適切なパラメータを に渡してみません"error"か?

.ajaxドキュメントから:

タイプ: Function( jqXHR jqXHR, String textStatus, String errorThrown )
リクエストが失敗した場合に呼び出される関数。この関数は 3 つの引数を受け取ります。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト、発生したエラーの種類を説明する文字列、およびオプションの例外オブジェクト (発生した場合) です。

したがって、この:

error: function() {
    //text_failure();
    alert('fail');
}

これでなければなりません:

error: function( x, stat, msg ) {
    //text_failure();
    console.error( x.responseText );
    console.error( x.status );
    console.info( x.statusText );
    console.log( msg );
}

おそらく、何が起こっているのかすぐにわかるでしょう。

于 2013-02-13T04:15:36.590 に答える
0

すべてのAJAXリクエストに対してこのようなことができます

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});

errorまた、このようにコールバックのパラメーターを使用することもできます

 $.ajax ({
            url:"form.php",
            type:'POST',
            data: form_data,
            success: function(return_data) {
                text_success(return_data);
                },
error: function(e, status, txt ) {


}
});

この記事をチェック

于 2013-02-13T04:18:28.030 に答える