【发布时间】:2011-08-05 12:36:53
【问题描述】:
我正在开发一个扩展基本 cakePHP 平台的插件。这个插件包括一个控制器,它将被一个外部 ajax 请求与 jQuery 调用。整个架构是客户端-服务器架构。问题是,如果我将数据发送到插件的控制器,$this->data 值始终为空。有谁知道问题出在哪里?代码如下:
// client code
$('#upload').click(function() {
// data for testing
var media = {};
media.name = 'Rihanna - S and M';
media.userid = 5;
media.description = 'Song of Rihanna';
media.rating = 4;
media.comments = new Array();
var comment = {};
comment.id = 1;
comment.user_id = 2;
comment.text = 'good';
media.comments.push(comment);
var comment2 = {};
comment2.id = 2;
comment2.user_id = 3;
comment2.text = 'nice';
media.comments.push(comment2);
var json = $.toJSON(media);
$.ajax({
url:'http://server.localhost/mediamanager/connectors/add',
async: false,
dataType: 'json',
type:'POST',
data:json,
success:function(response) {
console.log(response);
},
error:function(response, status, text) {
console.log(response);
console.log(status);
console.log(text);
}
})
});
这里是 cakephp 代码。另一件事是 $this->RequestHandler->isAjax() 在我发出 ajax 请求时总是返回错误。
// server code
function add()
{
if ($this->RequestHandler->prefers() == 'json') {
Configure:: write('debug', 0);
$this->autoRender = false;
$this->layout = 'ajax';
if(empty($this->data)) {
echo "data is empty";
} else {
echo "data received";
}
}
}
我希望任何人都可以提供帮助,因为这件事让我发疯了。
【问题讨论】:
标签: jquery ajax json cakephp plugins