0

不确定 SFDebug 在这种情况下是否有帮助。我正在使用 jQuery 制作 ajax 帖子。它在我的操作 URL 中检索 JSON 数据,然后调用执行操作的 Model 方法。直到我的操作 URL 的部分,以及对它的 jQuery 调用都可以正常工作。从客户端传输到服务器的数据得到了很好的接收,并且没有出错。

它是它调用模型上失败的方法的部分。我的 jQuery 方法如下所示:

$.post(url, jsonData, function(servermsg) { console.log(servermsg); }) ;

我的服务器操作是这样的

public function executeMyAjaxRequest(sfWebRequest $request)
{

   if($request->isXmlHttpRequest())
   {
      // process whatever
      $servermsg =  Doctrine_Core::getTable('table')->addDataToTable($dataArray);
      return $this->renderText($servermsg);
   }

       return false;
} 

Table.class.php 文件中关注的方法如下所示:

public function addDataToTable($dataArray)
{
   // process $dataArray and retrieve the necessary data   

   $data = new Data();
   $data->field = $dataArray['field'];
    .
    .
    .
   $data->save();

   return $data->id ;
}

该方法在模型中失败,当返回操作中的renderText并登录到控制台时,它返回SFDEBUG的HTMl。这表明它失败了。

如果这不是一个 Ajax 调用,我可以通过查看模型方法吐出的内容来调试它,但是在混合 Ajax 时这有点乏味。

不是在这里寻找确切的答案,而是更多关于如何在 symfony 环境中调试 ajax 请求,所以如果有关于如何调试的建议,那就太好了。

4

2 回答 2

0

您必须通过 ajax 发送带有会话 ide 密钥的 cookie

于 2015-11-06T05:16:47.927 回答
0

(假设您在服务器上配置了 XDEBUG)

为了通过 AJAX 请求触发调试会话,您必须以某种方式发出该请求以发送额外的 URL 参数XDEBUG_SESSION_START=1。对于您的示例:

$.post(url + '?XDEBUG_SESSION_START=1', jsonData, function(servermsg) { console.log(servermsg); }) ;

您也可以通过 cookie 触发它,但附加 URL 参数通常更容易。

于 2016-03-16T15:52:13.140 回答