PHP 处理具有 Application/JSON 内容类型的 JSON 请求
发送内容类型设置为“application/json”的 AJAX 请求时, PHP 在接收请求参数时的默认行为变得不明确。出现此问题的原因是 PHP 期望 post 参数是 URL 编码的,而 JSON 编码的数据不是。
在这种情况下,如果内容类型是“application/json”,则通过 PHP 的 $ 访问参数_POST(用于 URL 编码数据)将返回一个空数组。要在 PHP 中正确处理 JSON 请求,需要另一种方法。
解决方案:使用 file_get_contents() 检索 JSON 数据
PHP 不依赖 $_POST,而是使用 $_POST提供 file_get_contents() 函数来从各种来源读取原始数据,包括 PHP 输入流。与 json_decode() 结合使用时,此函数允许您在 PHP 脚本中解析和利用 JSON 编码的数据。
以下示例演示了如何处理具有“application/json”内容类型的 JSON 请求PHP:
<code class="php"><?php $json_data = json_decode(file_get_contents('php://input')); var_dump($json_data); ?></code>
在此示例中,file_get_contents('php://input') 从请求中检索原始 JSON 数据,然后 json_decode() 将其转换为数组或对象,然后可以将其转换为数组或对象。在您的脚本中进一步访问和处理。
以上是如何在 PHP 中使用'application/JSON”内容类型处理 JSON 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!