我在使用Zend Ajax时遇到了一些问题。那是我的js代码:
function deleteNewsCategory(cId) {
var conf = confirm("Are you sure you want to delete the item?");
if(conf) {
$.ajax({
dataType: 'json',
url: '/ajax/deletenewscategory',
type: 'POST',
data: {
cId : cId
},
success: function (response) {
alert(response);
}
});
}
}
这是我的AjaxController:
public function init() {
$this->_helper->ajaxContext->addActionContext('deletenewscategory', 'json')
->initContext();
}
public function deletenewscategoryAction() {
if ($this->getRequest()->isPost()) {
echo $this->_request->getPost('cId');
}
}
我在提交按钮中添加deleteNewsCategory函数,但是当我单击此按钮并出现确认消息并单击确定时我什么都看不到?
答案 0 :(得分:1)
有一个Javascript错误阻止提交发生,或者响应不包含JSON数据,因此您的处理程序未被调用。
您使用Ajax上下文后是否有带ajax.phtml
后缀的视图脚本?
查看在exit;
中的echo语句后添加deletenewscategoryAction
是否会显示警告。
接下来的事情是使用Firebug或livehttpheaders用于Firefox,或者Wireshark嗅出HTTP请求和响应,以查看您要获取的数据。
编辑:由于您收到404错误,请尝试:
url: '<?php echo $this->url(array('controller' => 'ajax',
'action' => 'deletenewscategory'),
null, true) ?>',
通过使用url()
帮助程序,它将根据您的路由和基本路径构建URL。
警报未显示的原因是因为404包含HTML而且无效的JSON,jQuery没有调用您的成功处理程序。