0

我的 ZF2 应用程序中有一个 jQuery ajax 调用。它以前工作过。突然就不行了。即使我在请求中放置了一个不存在的操作,它也不会像以前那样给出服务器错误。似乎它没有提出请求。

控制台中绝对没有错误。一切正常,直到我提出请求为止。这是它所在的功能:

$('.expand').click(function(){
    var CCID = $(this).parent().attr('id');
    CCID = parseInt(CCID);

    console.log(CCID);                                   // Works

    if($.inArray(CCID,$expanded) > -1){
        foldin(CCID);
    } else {
        console.log('Works up to here.');                // Works
        $.post('admin/expand', {
            id: CCID
        },function(data){
            console.log('Doesn\'t log this.');           // Doesn't work
            if(data.hasOwnProperty('info')){     
                console.log('sup');
                expand(data.info);
            } else {
                console.log('Can\'t find customer info.');
            }
        },'json'); 
    }
});

就像我之前说的,绝对没有错误,并记录我评论的所有位。有点希望我犯了一个愚蠢的错误,你能发现它。翻了好几遍了,没找到

如果有人想查看它,我会在我的控制器中添加该操作,但发布请求甚至似乎都没有寻找它,因为如果我给它一个虚假的操作它不会给出错误。

编辑:下面是一些额外的信息

所以我应评论者的要求添加了一个失败处理程序,它返回:

failed [Object, "parseerror", SyntaxError]

在 SyntaxError 中它说“意外的令牌 <”,但 .js 文件中没有,我找不到它告诉我它在哪个行/文件中找到它的位置。这可能会有所帮助。

这是我在控制器中调用的操作。似乎根本找不到它:

public function expandAction(){
    $request = $this->getRequest();
    $response = $this->getResponse();

    if($request->isPost()){ 
        $post_data = $request->getPost();
        $CCID = $post_data['id'];
        $customer = $this->getCustomerTable()->getCustomer($CCID);
        $response->setContent(\Zend\Json\Json::encode(array(
            'info'      => $customer,
        )));    
    }

    return $response;
}
4

1 回答 1

1

Arun P Johny taught me to use the Network tab in Google Chrome developer tools to figure out the problem. From there I could see that the path 'admin/expand' should've been 'expand'.

Might be a bit of a localized answer but I feel that his advice to use the network tab was helpful enough to warrant an answer. Maybe it'll be helpful to someone else at some point.

于 2013-08-02T09:01:53.570 回答