我已将PhpStorm配置为调试HTTP GET - 但仅限于我直接加载页面时。
当我想调试AJAX时,我会获取我的JS请求的URL并创建一个PhpStorm配置来调试它。
不是特别优雅,是吗?
当然,我不能为POST请求这样做(或者我可以吗?)。
理想情况下,我想在浏览器(Chrome)中加载我的AngularJs应用程序,并能够在PhpStorm中断点和调试后端。
我搜索了很多,发现了很多,但我无法找到答案: - (
谁可以提供帮助?
[更新]几年后,我使用优秀且免费的Postman来测试GET和POST。
答案 0 :(得分:3)
如果Xdebug和PHPStorm配置为在正常加载页面时调试HTTP GET,那么只需在Javascript中的AJAX请求的URL中包含GET参数即可。例如:http://example.com/script.php?XDEBUG_SESSION_START=PHPSTORM
在PHPStorm中启用Debug侦听,使用新URL发送AJAX请求,调试器应该捕获它。您正在寻找的POST数据应该像往常一样出现在$ _POST中。
答案 1 :(得分:0)
我正在使用一种黑客方法来调试AJAX请求。我的项目是Laravel。您可以将此代码更改为与您的技术兼容。
基本理念是:
当您开始调试时,该端口将应用于具有+ debug_url
的所有ajax网址。
HomeController @ index method
// Development purpose only
if ($request->has('XDEBUG_SESSION_START')) $request->session()->put('debug_port' , $request->get('XDEBUG_SESSION_START'));
<强> master.blade.php 强>
<script>
var debug_url='?XDEBUG_SESSION_START={{session('debug_port')}}';
</script>
<强> submit.blade.php 强>
<script>
$.ajax(url + debug_url, {
method:'post',
data:{}
});
</script>