現在、次のコードは意図したとおりに機能しますが、コードのどこかに「LANG: en」などのエコーを追加すると (ブートストラップとしましょう)、次のコードは機能しなくなり、次の ajax リクエスト応答が返されます。
<br/>LANG : en{"response":true,"id":13}
(ajax 応答には echo + json 配列が含まれています) したがって、id を出力できません (data.id にアクセスしようとすると : undefined が出力されます)。
私の質問は次のとおりです: どうすればデバッグ情報を出力し、それでも 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);
}
});
});
私が十分に明確だったことを願っています。お時間をいただきありがとうございます!