如何使用 PhpStorm 和 Xdebug 调试 AJAX (POST)?
How to debug AJAX (POST) with PhpStorm and Xdebug?
我已将 PhpStorm 配置为调试 HTTP GET - 但仅当我直接加载页面时才如此。
当我想调试 AJAX 时,我采用我的 JS 请求的 URL 并创建一个 PhpStorm 配置来调试它。
不是特别优雅,是吗?
当然,对于 POST 个请求,我不能这样做(或者我可以吗?)。
理想情况下,我想在浏览器 (Chrome) 中加载我的 AngularJs 应用程序,并能够在 PhpStorm 中设置断点和调试后端。
我在谷歌上搜索了很多,找到了很多接近的答案,但我找不到答案:-(
谁能帮忙?
[更新] 几年后,我正在使用优秀且免费的 Postman 来测试 GET 和 POST。
我正在使用一种黑客方法来调试 AJAX 请求。我的项目是 Laravel。您可以更改此代码以使其与您的技术兼容。
基本思路是:
- 抓取首页调试端口
- 创建会话
- 使用此会话连接 AJAX url
当您开始调试时,该端口将应用于所有具有 + debug_url
.
的 ajax url
HomeController@index 方法
// 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>
如果 Xdebug 和 PHPStorm 配置为在正常加载页面时调试 HTTP GET,则只需在 Javascript 的 AJAX 请求的 URL 中包含 GET 参数。例如:http://example.com/script.php?XDEBUG_SESSION_START=PHPSTORM
在 PHPStorm 中打开调试侦听,使用新的 URL 发送 AJAX 请求,调试器应该会捕获它。您正在查找的 POST 数据应该像往常一样出现在 $_POST 中。
我已将 PhpStorm 配置为调试 HTTP GET - 但仅当我直接加载页面时才如此。
当我想调试 AJAX 时,我采用我的 JS 请求的 URL 并创建一个 PhpStorm 配置来调试它。
不是特别优雅,是吗?
当然,对于 POST 个请求,我不能这样做(或者我可以吗?)。
理想情况下,我想在浏览器 (Chrome) 中加载我的 AngularJs 应用程序,并能够在 PhpStorm 中设置断点和调试后端。
我在谷歌上搜索了很多,找到了很多接近的答案,但我找不到答案:-(
谁能帮忙?
[更新] 几年后,我正在使用优秀且免费的 Postman 来测试 GET 和 POST。
我正在使用一种黑客方法来调试 AJAX 请求。我的项目是 Laravel。您可以更改此代码以使其与您的技术兼容。
基本思路是:
- 抓取首页调试端口
- 创建会话
- 使用此会话连接 AJAX url
当您开始调试时,该端口将应用于所有具有 + debug_url
.
HomeController@index 方法
// 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>
如果 Xdebug 和 PHPStorm 配置为在正常加载页面时调试 HTTP GET,则只需在 Javascript 的 AJAX 请求的 URL 中包含 GET 参数。例如:http://example.com/script.php?XDEBUG_SESSION_START=PHPSTORM
在 PHPStorm 中打开调试侦听,使用新的 URL 发送 AJAX 请求,调试器应该会捕获它。您正在查找的 POST 数据应该像往常一样出现在 $_POST 中。