我的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');
}
});
就像我之前说过的那样,绝对没有错误,并记录了我评论过的所有内容。希望我犯了一个愚蠢的错误,你可以发现它。已经过了很多次,找不到它。
如果有人想看到它,我会在我的控制器中添加动作,但是post请求似乎甚至没有找到它,因为如果我给它一个虚假的动作它不会给出错误。< / p>
编辑:以下是一些额外信息
所以我根据评论者的要求添加了一个失败处理程序,它返回了:
failed [Object, "parseerror", SyntaxError]
在SyntaxError中它显示“意外令牌&lt;”,但是.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;
}
答案 0 :(得分:1)
Arun P Johny教会我使用Google Chrome开发者工具中的“网络”标签来解决问题。从那里我可以看到路径'admin / expand'应该'展开'。
可能是一个本地化的答案,但我觉得他建议使用网络选项卡足以提供答案。也许在某些时候对其他人有帮助。