我正在使用jQuery通过
向PHP发送一个JSON对象$.ajax({
url: myURL,
type: 'POST',
contentType: "application/json; charset=utf-8",
data: myData,
processData: false,
dataType: 'html',
async: false,
success: function(html) {
window.console.log(html);
}
});
并尝试使用
解码JSON对象$GLOBALS["HTTP_RAW_POST_DATA"];
但变量的内容打印为
[object Object]
json_decode()返回NULL(当然)。
我需要做些什么来获取实际的JSON数据?
谢谢, 暖气。
答案 0 :(得分:4)
看起来你正在向PHP发送一个字符串。默认情况下,Jquery以普通的post格式发送数据。 PHP可以很好地读取这些数据。我建议只从POST阵列中获取所需的数据。
如果您尝试通过JSON序列化Javascript对象,然后将其转换回PHP端的对象,那么您可能希望使用JSON路由。您需要一个插件才能将数据从字符串转换为JSON。您可能需要考虑: http://code.google.com/p/jquery-json/
你会改变这一行:
data: myData,
要:
data: $.toJSON(myData),
然后在PHP端,你仍然会收到post数组中的数据,你可以使用以下命令转换它:
$params = json_decode($_POST[]);
答案 1 :(得分:1)
看起来你不向你的php脚本发送一个JSON对象,只是字符串'object Object'。
答案 2 :(得分:0)
您是否尝试过使用$ _POST?
我或多或少地处理了所有JSON请求:
$params = json_decode($_POST[]);
答案 3 :(得分:0)
您实际上是通过POST发送字符串。我建议使用JSON2对您的Javascript对象进行字符串化。 使用
var myData = JSON.stringify(myObject,replacer);
答案 4 :(得分:-1)
使用file_get_contents('php://input')
代替$GLOBALS["HTTP_RAW_POST_DATA"];
答案 5 :(得分:-1)
您已在ajax调用中将dataType设置为“html”。不应该是'json'吗?我认为你的好json对象被压缩成无意义的字符串。