我正在開發一個簡單的鏈接,它將啓動一個ajax調用。直到我們的Ubuntu服務器退役爲止,這一切都按預期工作;我們有一個新的「相同」的服務器。當我檢查POST中的內容時,問題發生在服務器端。 的$ _ POST預期回聲[「scan_date」]是:2012年11月26日PHP Post變量具有重複的,消耗的數據
實際回聲:2012-11-26scan_date = 2012年11月26日
而且這是在PHP的實際回聲代碼如下。 客戶端警報給出了這個:2012-11-26這就是我所期望的。 所以,似乎在服務器端發生了一些事情。我期望回聲是「2012年11月26日」,而不是「2012-11-26scan_date = 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
}
})
UPDATE:我們已嘗試是完全爲這個PHP項目的代碼框架之外的命令行卷曲電話,相同的結果將是注意到。所以也許Apache與此有關。
此外,我們發現添加第二個POST參數和值處理此問題。
爲什麼不使用$ .post而不是$ .ajax?它肯定不會解決你的問題,但「更容易理解和使用」http://docs.jquery.com/Ajax/jQuery.ajax –
echo file_get_contents('php:// input')'說什麼?這基本上是PHP在將其解碼爲'$ _POST'之前接收到的。 –
傑克,這很有趣,這裏是我從你的建議中得到的: scan_date = 2012-11-09scan_date = 2012-11-09 – user1082428