0

Linux サーバーで Apache に問題があります。AJAX POST を介してフォーム (またはデータ) を投稿するたびに、POST 値が空であるように見えます。.htaccess ファイルに何か問題がある可能性があることを既に読みましたが、まだ解決策が見つかりません。

私の .htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} !/product\.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=permanent,L]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_URI} !/product\.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]


私の仮想ホスト内:

<Directory /var/www/foldername>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

フォーム データをブラウザーに記録したので、AJAX 要求に送信されたデータが空ではないことがわかりました。しかし、POST 要求を処理してメールを送信する必要がある PHP ファイルでは、POST 値は空です。

これは私がデータを投稿する方法です:

var data = $('#frmContact').serializeArray();
$.ajax({
    type: "POST",
    url: "mail.php",
    data: data,
    success: function () {
        // success
    },
    error: function () {
        // problem
    }
});

誰かが解決策を持っていますか? 前もって感謝します!

4

1 に答える 1