用PHP处理json请求

9 php ajax json request mime-types

在进行ajax调用时,当contentType设置为application/json而不是默认的x-www-form-urlencoded时,服务器端(在PHP中)无法获取post参数.
在下面的工作示例中,如果我在ajax请求中将contentType设置为"application/json",则PHP $ _POST将为空.为什么会这样?如何在PHP中正确处理contentType为application/json的请求?

$.ajax({
    cache: false,
    type: "POST",
    url: "xxx.php",
    //contentType: "application/json",
    processData: true,
    data: {my_params:123},
    success: function(res) {},
    complete: function(XMLHttpRequest, text_status) {}
});
Run Code Online (Sandbox Code Playgroud)

Wri*_*ken 25

<?php
   var_dump(json_decode(file_get_contents('php://input')));
?>
Run Code Online (Sandbox Code Playgroud)