私は ajax 呼び出しを開始する単純なリンクに取り組んでいました。これは、Ubuntu サーバーが廃止されるまで期待どおりに機能しました。新しい「同一の」サーバーがあります。POST の内容を調べると、サーバー側で問題が発生します。$_POST["scan_date"] の期待されるエコーは: 2012-11-26
実際のエコーは: 2012-11-26scan_date=2012-11-26
これは、以下の PHP コードの実際のエコーです。クライアント側のアラートはこれを示します: 2012-11-26 そしてそれは私が期待するものです。そのため、サーバー側で何かが起こっているようです。エコーは「2012-11-26scan_date=2012-11-26」ではなく「2012-11-26」になると思います
POST データがそのようにむちゃくちゃになっている理由がわかりません。
PHP:
$date = isset($_POST["scan_date"]) ? $_POST["scan_date"] : date("Y-m-d");
echo $date; //produces 2012-11-26scan_date=2012-11-26 which is bad
JQuery:
var val = $(this).attr('value');
dateSelected = val.replace(/facterOption-/g, "");
dateSelected = $.trim(dateSelected);
alert(dateSelected); //alerts 2012-11-26 which is good
$.ajax({
type: "POST",
dataType: 'json',
url: 'https://someurl',
data: {
scan_date: dateSelected
}
})
更新: この PHP プロジェクトのコード フレームワークから完全に外れているコマンド ラインの curl 呼び出しを試しましたが、同じ結果が得られました。したがって、Apache がこれに関係している可能性があります。
さらに、2 つ目の POST パラメーターと値を追加することで、これが処理されることがわかりました。