Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在Symfony环境中调试Ajax请求_Debugging_Jquery_Symfony_Xmlhttprequest_Symfony 1.4 - Fatal编程技术网

Debugging 在Symfony环境中调试Ajax请求

Debugging 在Symfony环境中调试Ajax请求,debugging,jquery,symfony,xmlhttprequest,symfony-1.4,Debugging,Jquery,Symfony,Xmlhttprequest,Symfony 1.4,不确定SFDebug在这种情况下是否有帮助。我正在使用jQuery制作一篇ajax文章。它在我的操作URL中检索JSON数据,然后调用执行该操作的模型方法。直到我的动作URL和对它的jQuery调用正常工作为止。从客户机传输到服务器的数据接收良好,没有出现错误 它是在模型上调用方法失败的部分。我的jQuery方法如下所示: $.post(url, jsonData, function(servermsg) { console.log(servermsg); }) ; public functi

不确定SFDebug在这种情况下是否有帮助。我正在使用jQuery制作一篇ajax文章。它在我的操作URL中检索JSON数据,然后调用执行该操作的模型方法。直到我的动作URL和对它的jQuery调用正常工作为止。从客户机传输到服务器的数据接收良好,没有出现错误

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

$.post(url, jsonData, function(servermsg) { console.log(servermsg); }) ;
public function addDataToTable($dataArray)
{
   // process $dataArray and retrieve the necessary data   

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

   return $data->id ;
}
我的服务器操作如下

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文件中关注的方法如下所示:

$.post(url, jsonData, function(servermsg) { console.log(servermsg); }) ;
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调用,我可以通过查看model方法的结果来调试它,但是混合使用Ajax有点乏味


这里不寻求确切的答案,但更多地介绍如何在symfony环境中调试ajax请求,因此,如果有关于如何调试的建议,那就太好了。

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

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

为了通过AJAX请求触发调试会话,您必须以某种方式发出该请求,以发送额外的URL参数
XDEBUG\u session\u START=1
。例如:

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

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