ベースhrefでのjQuery POSTの問題


I have to use on my site because I am using apache mod_rewrite,
that causes issues if I do not put the base href tag.

しかし、この問題は今このjQuery関数を使っています:

$(document).ready(function(){
    $("#submit_newsletter").click(function(){                                      
        var hasError = false;
        var emailReg = /^([w-.][email protected]([w-]+.)+[w-]{2,4})?$/;

            var nameVal = $("#name").val();
        if(nameVal == '') {
                        $("#name").addClass("highlightError").delay(4000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });
        hasError = true;
                 }

               var subnameVal = $("#subname").val();
        if(subnameVal == '') {
                        $("#subname").addClass("highlightError").delay(4000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });
            hasError = true;
        }


        var emailVal = $("#email").val();
        if(emailVal == '') {
            $("#email").addClass("highlightError").delay(4000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });

   hasError = true;
        } else if(!emailReg.test(emailVal)) {
                        $("#email").addClass("highlightError").delay(4000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });
        hasError = true;
        }


        var messageVal = $("#message").val();
        if(messageVal == '') {
                        $("#message").addClass("highlightError").delay(4000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });

            hasError = true;
        }



        if(hasError == false) {
            $.post("mail.php",
                { name: nameVal, subname: subnameVal, email: emailVal, message: messageVal },
                    function(data){
                        $("#results").text("Messaggio Inviato.").delay(4000).queue(function(){
       $("#results").text("")
        $(this).dequeue();
    });

                                                $('#newsletter')[0].reset();

                    }
                 );
        }

        return false;
    });     

});

上記のjQuery関数が動作するのを止めて、基本hrefタグを削除するとうまく動作します(繰り返して使用する必要があります)。
何のエラーも出ません。単にmail.phpファイルに値を渡さず、結果を返しません。

このjQueryの問題をベースhrefタグで修正するにはどうすればよいですか?

ありがとう。

ベストアンサー

私は書き直しであなたのクエリー文字列を書き換えていないと思います。 jQuery
$ .postのデフォルトの型はGETメソッドなので、urlは今のようなものになります:

mysiste.com/it/?param1=value1 

クエリー文字列を使用しない場合は、jQueryで “post”という型を使用できます。

あなたのGETメソッドを保持したい場合、RewriteRuleは次のようになります:

RewriteRule ^/it/$ /mail.php [QSA,L]

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です