Когда вы отлаживаете запрос Ajax, тот отправляется браузером в том же контексте навигации, что и другие (не Ajax) запросы - вот почему он отлично работает.
Запрос, отправленный curl, находится в другом, ином контексте - и я не уверен, что вы можете подключить отладчик к этому ... Но, может быть ...
Прежде всего, вот информация, которая может оказаться полезной, цитируя документацию Xdebug :
Xdebug содержит функциональность для сохранения
отслеживать сеанс отладки при запуске
через браузер: куки. Это работает
как это:
- Когда переменная URL
XDEBUG_SESSION_START=name
равна
добавленный к URL, Xdebug испускает
печенье с именем
"XDEBUG_SESSION
" и в качестве значения
значение XDEBUG_SESSION_START
Параметр URL.
- Когда есть переменная GET (или POST)
XDEBUG_SESSION_START
или
XDEBUG_SESSION
печенье установлено, Xdebug
попытается подключиться к отладчику.
- Чтобы остановить сеанс отладки (и уничтожить куки), просто добавьте URL
параметр
XDEBUG_SESSION_STOP
.
Xdebug больше не будет пытаться сделать
соединение с отладчиком.
Возможно, это может сработать, если вы установите этот cookie "вручную", отправив его по запросу скручивания ...
Полагаю, вам сначала нужно получить его значение, установленное Xdebug в начале сеанса отладки - однако повторное использование файла cookie, имеющегося в вашем браузере, должно быть возможно.
Примечание: я никогда не пробовал это - если вы пытаетесь, и это работает, не могли бы вы подтвердить, что это работает?