這js jQuery腳本正確格式化表單數據到一個對象併發送到我的PHP代碼。jQuery ajax POST請求到Apache PHP服務器沒有收到數據
$("#formSignup").submit(function(e){
// Map the array into a properly formatted object
var data = {};
$.map($(this).serializeArray(),function(n, i){
data[n.name] = n.value;
});
// Send the http request
$.ajax({
type: "POST",
url: "api/signup.php",
data: JSON.stringify(data),
contentType: "application/json",
success: function(response){
//console.log(JSON.parse(response));
console.log(response);
},
failure: function(err){
console.error(err);
}
});
e.preventDefault(); // Don't submit defaultly
});
但是PHP無法接收數據。 print_r($_POST)
將打印一個空數組,並且值不可訪問。它沒有得到來自錯誤文件的迴應。
考慮到Mozilla開發控制檯記錄的XmlHttpRequest明確發佈了JSON數據,這非常奇怪。
其他問題已被指出通過對服務器進行重定向回答。然而,我還沒有做任何事情,這些設置,我得到了後工作在同一臺服務器與我自己的功能後發出的請求。
你有你的PHP代碼樣本嗎? – Nick
@尼克沒有什麼特別的。 $ _POST變量只是空的。 –
PHP無法將JSON解碼爲'$ _POST'。如果你真的想發送數據爲JSON,你必須使用'json_decode(file_get_contents(「php:// input」))' – Barmar