在 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中文网其他相关文章!