【发布时间】:2012-02-01 21:26:47
【问题描述】:
我正在使用 ajax:
$.ajax({
url: 'testURL',
type: 'POST',
dataType: 'json',
data: {userId: userIds, imageUrl: imageUrl, message: message },
success: callBack
});
和服务器端:
$data = $this->_request->getPost();
$response = Zend_Json::decode($data, true);
但我在服务器端遇到错误:
Decoding failed
我做错了什么?
感谢您的帮助
编辑:
我试过了:
$.ajax({
url: STValentines.baseUrl+'/mensaje/sendmessage',
type: 'POST',
dataType: 'json',
data: {userId: '111', imageUrl: 'imageurl', message: 'message' },
success: callBack
});
同样的错误
编辑 2:
这里再次是 js 代码 php 代码和结果:(
$.ajax({
url: 'testURL',
type: 'POST',
dataType: 'json',
data: "{'userId': 'test1234', 'imageUrl': 'testimageUrl', 'message': 'testmessage' }",
success: callBack
});
public function sendmessageAction() {
$data = $this->_request->getPost();
print_r($data);
$response = $data;
$this->_helper->json($response);
结果:
Array
(
)
【问题讨论】:
-
您的 JSON 字符串格式是否正确?
-
$data实际上是否包含 JSON 字符串? PHP 的原生json_decode()可以工作吗? JSON 字符串中是否有多字节/非 ascii 字符? -
您的编辑不正确。同样,您没有引用您的对象属性名称。此外,字符串需要使用 quotes 而不是 撇号。 PHP 对其 JSON 语法非常挑剔。您编辑的 AJAX 调用的数据应该如下
{"userId": "111", "imageUrl": "imageurl", "message": "message" }是合适的测试。 -
仍然不正确。你不是在看我的代码是如何格式化的。除非您注意 JSON 的语法(没有撇号、引用字符串、引用对象属性名称),否则它不会在 PHP 中正确解析。
标签: php jquery ajax json zend-framework