Javascript 如何通过jquery在php中正确发送JSON

Javascript 如何通过jquery在php中正确发送JSON,javascript,php,jquery,Javascript,Php,Jquery,我正在向后端服务器发送JSON,但我对如何正确处理它感到困惑, 我正在阅读echo(json_decode($_POST))不起作用,但 echo(json)解码(文件获取内容)php://input")));,但实际上我试图在客户端警报(respon)上输出响应但没有显示 0_12_e2_contentType_JSON.html $(函数(){ $.ajax({ url:“fragment/0_12_e2_contentType_JSON.php”, 类型:“POST”, contentT

我正在向后端服务器发送JSON,但我对如何正确处理它感到困惑, 我正在阅读
echo(json_decode($_POST))不起作用,但
echo(json)解码(文件获取内容)php://input")));,但实际上我试图在客户端
警报(respon)上输出响应但没有显示

0_12_e2_contentType_JSON.html


$(函数(){
$.ajax({
url:“fragment/0_12_e2_contentType_JSON.php”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据:{
“姓名”:“汉斯”,
“身份证”:10
},
成功:功能(respon)
{
警报(respon);
},
错误:函数(e){
警报(“Ajaxnya错误”);
}
});
});
0_12_e2_contentType_JSON.php



我的问题是它已经正确了吗?但为什么它什么也不输出呢?谢谢

我不清楚你的问题,不管怎样,似乎最终你想从服务器上回答你通过ajax发送的内容。。。如果是这种情况,我建议使用json_编码。。。非json_解码

<?php
header('Content-Type: application/json');
echo (json_encode($_POST));
?>

如果要发送
contentType:'application/json'
您需要自己对数据进行字符串化

 $.ajax({
        url: "fragment/0_12_e2_contentType_JSON.php",
        type: "POST",
        contentType:"application/json; charset=utf-8",

        data: JSON.stringify({ "name":"hans" ,"id":10}),
        success: function (respon)
        {
           alert(respon);
        },
        error:function(e){
        alert('Ajaxnya error');
           }
    });

大多数人不会覆盖默认的
contentType
并使用
$\u POST

var\u dump
在这种情况下,将其更改为
var\u dump(file\u get\u contents(“php://input"));并查看它是否有效?您好,我尝试过,但它输出
NULL
@Bravo^^^您是如何检查的?你的PHP版本是什么?
alert()
file\u get\u contents()
返回stringreally。。。所以你遗漏了一些东西,因为json_解码需要一个字符串..不能接受数组(我在看你的问题)顺便说一句。。。因此无论如何,您应该在响应
头('Content-Type:application/json')之前使用正确的头
我将否决你的问题,因为最终你接受的答案不是
如何通过jquery正确发送php中的JSON
。也许没人会相信它至少你告诉我你是那个被我否决的人:哈哈哈,没问题,伙计!请不要太在意;)$_POST对我不起作用(不知何故,它与
contentType
)事实上……你可以将它作为
data:data:{“name”:“hans”,“id”:10}
发送,然后使用
json\u encode($\u POST)
srv@fedeghe如果覆盖默认的contentType,则不会。也许contentType只是表示我发送的请求正文的类型,但不转换我发送的数据。我对JQuery:D有点陌生,谢谢大家@fedeghe,如果你改变答案,我会给你投票,因为我发送JSON是为了不接收它:D@Bravo通过添加自己的contentType,您正在使它变得比需要的更复杂。请参阅答案底部的我的更新。阅读文档以了解
dataType
contentType
<?php
header('Content-Type: application/json');
echo (json_encode($_POST));
?>
 $.ajax({
        url: "fragment/0_12_e2_contentType_JSON.php",
        type: "POST",
        contentType:"application/json; charset=utf-8",

        data: JSON.stringify({ "name":"hans" ,"id":10}),
        success: function (respon)
        {
           alert(respon);
        },
        error:function(e){
        alert('Ajaxnya error');
           }
    });