php post数组ajax,php-jQuery AJAX调用上的POST数组为空

博主在尝试使用jQuery的AJAX功能将一个JSON编码的对象通过POST方式发送到PHP控制器,但发现$_POST和$_REQUEST数组没有接收到数据。在Firebug中可以看到POST请求,然而在PHP端无法获取到JSON数据。解决方案可能涉及到检查PHP如何处理应用程序/json类型的POST数据。
摘要由CSDN通过智能技术生成

我不禁要问,因为还有许多与此主题相关的帖子(例如one和two),但是这些帖子中的解决方案似乎都不适合我.

我正在尝试将JSON编码的对象从页面传递到PHP控制器,然后以一些信息进行响应.

如果我在Firebug中观看,我可以看到在“ Post”选项卡下发送了对象,但是当我打印$_GET,$_ POST和$_REQUEST数组时,关于json对象什么也没看到. $_GET数组至少显示我的’update-player’查询字符串,但是POST为空,REQUEST仅显示我拥有的一些本地cookie.

这是我的jQuery代码.如您所见,我目前正在对JSON进行硬编码,目的是我将拥有一个jQuery方法来更新本地对象.

function sendPlayerUpdate(row, col) {

var playerinfo = [

{

"id": 1,

"row": row,

"col": col

}

];

alert(playerinfo[0].id); //debugging

$.ajax({

type: 'POST',

url:"controller.php?a=update-player",

//data: $.toJSON(playerinfo[0],

data: { json: JSON.stringify(playerinfo) },

contentType: "application/json",

success: function (){

},

dataType: 'json'

});

};

我对应的处理请求的PHP代码:

// update player information from AJAX POST

case "update-player":

if (isset($_POST['json'])) echo "json received\n\n";

else echo "json not received\n\n";

echo "GET VARIABLES\n";

print_r($_GET);

echo "\n\nPOST VARIABLES\n";

print_r($_POST);

echo "\n\nREQUEST VARIABLES\n";

print_r($_REQUEST);

而且,我在Firebug中看到的是:

json未收到

GET VARIABLES

Array

(

[a] => update-player

)

POST VARIABLES

Array

(

)

REQUEST VARIABLES

Array

(

[a] => update-player

(local cookies)

)

解决方法:

尝试在PHP中进行如下操作(当请求是一个应用程序/ json时,则不会将数据放入$_POST)

var_dump(json_decode(file_get_contents("php://input")));

标签:php,jquery,post

来源: https://codeday.me/bug/20191012/1899855.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值