我正在使用ajax发送数据:
$('article.work a').click(function(e){
var h = $(this).attr('href');
e.preventDefault();
$.ajax({
type: "POST",
url: h,
data: workItems,
success: function(data){
console.log('success');
window.location = h;
},
error: function(){
console.log('eror');
}
});
});
它发送确定并在检查firebug post标签后看起来像:
所以我相信它正在发送正确的数据。但是当我尝试通过php从$ _POST中检索它时,我做了
<?php
print_r(json_decode($_POST["json"]));
?>;
什么都没有打印出来。
我做错了什么? 为什么$ _POST不会识别我的数据,即使它被发送了?
答案 0 :(得分:1)
尝试:
var_dump($_POST['json'], true)
。这意味着将产生关联数组,而不是对象。
尝试:
$.ajax({
url: "h",
type: "post",
data: workItems,
});
尝试使用var_dump($_POST);
或关联数组获取数据:var_dump($_POST['workItems'], true);
。
我认为在输出JSON结果之前应该正确格式化为UTF8:
$result = mb_convert_encoding($result,'UTF-8','UTF-8');
$result = json_decode($result);
在输出JSON代码之前输入上面的代码。