Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery.post不适用于对象文字_Jquery_Slim - Fatal编程技术网

jquery.post不适用于对象文字

jquery.post不适用于对象文字,jquery,slim,Jquery,Slim,类似于我所做的: e、 g 我的php rest函数: function postContact(...) { $request = Slim::getInstance()->request(); $body= json_decode($request->getBody()); print_r($body); } 为什么我不能使用jQueryAPI中描述的对象文字?是我的服务器端还是客户端出错了?jQuery实际上并没有在PHP脚本中发布“对象文字”。它被转

类似于我所做的:

e、 g

我的php rest函数:

function postContact(...) {
    $request = Slim::getInstance()->request();
    $body= json_decode($request->getBody());
    print_r($body);
}

为什么我不能使用jQueryAPI中描述的对象文字?是我的服务器端还是客户端出错了?

jQuery实际上并没有在PHP脚本中发布“对象文字”。它被转换为查询字符串,并作为POST数据发送,就像您通常发布表单一样

您不需要
json\u解码
任何东西,只需要读取
$\u POST
数组,并获取其值


最后两个示例是有效的,因为您将JSON字符串作为帖子正文发送,而其他示例将标准查询字符串作为帖子正文发送。

您理解错了。传递对象文字将导致jQuery将对象的每个属性作为键,并将所有值转换为字符串,并将其转换为post参数,其形式为
key1=val1&key2=val2
。当然,这不是JSON,因此
JSON\u decode
会自动失败。

如何定义对象?使用“e.g…”编辑以使其更清晰,谢谢。我的错误是,我假设第二个参数将转换为JSON。文档中很清楚,这只是发布数据。。。
$.post('http://...', {name:'test'}, function(data) {...});
function postContact(...) {
    $request = Slim::getInstance()->request();
    $body= json_decode($request->getBody());
    print_r($body);
}