在PHP 中從Ajax 解碼JSON 資料
嘗試將Ajax 請求中的JSON 資料傳送到PHP 腳本時,您可能會遇到到無法正確接收或解析資料的問題。為了解決這個問題,一個常見的問題是如何有效地從 Ajax 發送 JSON 資料並在 PHP 中對其進行解碼。
解決方案
1.刪除Content-Type 標頭
在Ajax 請求中,刪除contentType 標頭:
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData:dataString} });
2.使用直接變數賦值
在PHP 中,直接從$_POST 存取JSON 數據,而不使用json_decode:
if(isset($_POST['myData'])){ $obj = $_POST['myData']; //some php operation }
原因
原始程式碼不起作用的原因是contentType 標頭設定為application/json。這向 PHP 表明發送的資料是 JSON 格式,但事實並非如此。資料實際上是包含 JSON 字串的普通 POST 查詢。 透過刪除 contentType 標頭,您可以將資料作為常規 POST 查詢發送,並允許 PHP 自動處理字串轉換。以上是如何在 PHP 中解碼來自 Ajax 的 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!