Ajax调用没有显示响应 - Zend Framework

时间:2012-08-12 14:35:21

标签: ajax zend-framework

我在使用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函数,但是当我单击此按钮并出现确认消息并单击确定时我什么都看不到?

1 个答案:

答案 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没有调用您的成功处理程序。