Xde­bug für AJAX-Calls

Für das Debug­ging per XDe­bug nut­ze ich Brow­ser-Hel­per wie den „Xde­bug Star­ter” für Fire­fox. Der Star­ter sen­det, wenn „Debug­ging” aus­ge­wählt wur­de, auto­ma­tisch einen Coo­kie mit einem XDE­BU­G­_­SES­SI­ON-Ein­trag, der Xde­bug anweist, eine Debug-Ses­si­on zu star­ten und sich mit dem kon­fi­gu­rier­ten Debug-Host und Port zu ver­bin­den. Das klappt aber lei­der nicht ohne wei­te­res bei AJAX-Calls.

Wird ein AJAX-Request gestar­tet, stoppt der Debug­ger nicht an den gesetz­ten Break­points. Das liegt dar­an, dass der per Java­script initi­ier­te AJAX-Request kei­nen XDE­BU­G­_­SES­SI­ON-Para­me­ter oder -Coo­kie sendet.

Die Abhil­fe ist ein­fach: hän­ge den XDE­BU­G­_­SES­SI­ON-Para­me­ter ein­fach an die URL des AJAX-Requests an:

jQuery.ajax({
  url: 'http://localhost:3000/wp-admin/admin-ajax.php?XDEBUG_SESSION=netbeans-xdebug',
  type: 'POST',
  data: {
    action: 'myAjaxRequestAction',
    ...

Das funk­tio­niert übri­gens auch bei POST-Requests; Xde­bug schert sich nicht um den Request-Typ, son­dern sieht nur auf die URL-Para­me­ter bzw. Cookies.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

drei × zwei =