目前,以下代码按预期工作,但如果我在代码中的任何位置添加诸如“LANG:en”之类的回声(假设在引导程序中),以下代码将不再工作,我得到这个 ajax 请求响应:
<br/>LANG : en{"response":true,"id":13}
(ajax 响应包含 echo + json 数组),因此我无法打印 id(它将打印:当我尝试访问 data.id 时未定义)。
我的问题是:如何打印我的调试信息并仍然设法执行 ajax 请求?
这是我在控制器中的代码:
public function init()
{
$this->_helper->ajaxContext->addActionContext('retrievecategories', 'json')->initContext();
}
public function retrievecategoriesAction()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
if ($this->getRequest()->isXmlHttpRequest()) {
if (isset($_POST['id']))
$id = $_POST['id'];
$id+=1;
echo json_encode(array('response' => true, 'id' => $id));
}
}
我的js代码:
jQuery(function(){
var obj = {"id":12};
jQuery.ajax({
url: '/search/retrievecategories?json',
type: 'post',
data: obj,
dataType: 'json',
success: function(data){
var id = data.id;
alert(id);
},
error: function(data){
var id = data.id;
alert(id);
}
});
});
我希望我足够清楚。感谢您的时间 !