# Ajax und der CSRF-Token

**URL:** <https://forum.shopware.com/t/ajax-und-der-csrf-token/44619>\
**Category:** Programmierung\
**Created:** [18. März 2017 um 19:58 UTC](https://forum.shopware.com/t/ajax-und-der-csrf-token/44619 "2017-03-18T19:58:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [18. März 2017 um 19:58 UTC](https://forum.shopware.com/t/ajax-und-der-csrf-token/44619/1 "2017-03-18T19:58:22Z")

</div>

Hi,

es gibt ja die&nbsp;jquery.csrf-protection.js nun habe ich mal eine Erweiterung die ich damals für 5.2.9 programmiert habe auf der aktuellen Version ausprobiert und folgendes festgestellt.  
Die Erweiterung jquery.csrf-protection.js fügt bei einem Ajax aufruf den csrf-token an die URL.

```
        _jsonpBeforeSend: function(event, request, settings) {
            if (!settings.type || settings.type.toLowerCase() !== 'get') {
                return;
            }

            if (settings.url.indexOf('__csrf_token=') !== -1) {
                return;
            }
            settings.url = settings.url + '&__csrf_token=' + this.getToken();
        },

```

Im Template habe ich folgendes:

```
data-ajaxUrl="{url module="widgets" controller="xyzListing" action="ajaxListing" ordernumber=$detail.number}">

```

[http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2](http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2)

setzt ich einen Ajax Aufruf ab passiert das:

[http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2](http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2) **&\_\_csrf\_token=W7sfRprqXon2G2knoVOKOCbvo611mn**

Mein Response ist leer, weil es eigentlich **?** &nbsp;statt **&** &nbsp;sein müsste bzw. müsste man prüfen ob die URL params hat oder nicht.

Warum wurde da nicht geprüft ?&nbsp;

Wenn ich einfach irgendetwas übergebe zum Bsp.:

```
            $.ajax({
                url: ajaxUrl,
                method: 'GET',
                data: {
                    ajax: true,
                },

```

[http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2](http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing/ordernumber/SW10179.2)?ajax=true **&\_\_csrf\_token=W7sfRprqXon2G2knoVOKOCbvo611mn**

oder die Artikelnummer als data-attribut übergebe:

```
data-ajaxUrl="{url module="widgets" controller="xyzListing" action="ajaxListing"}" data-ordernumber="{$detail.number}">

            $.ajax({
                url: ajaxUrl,
                method: 'GET',
                data: {
                    ordernumber: number,
                },

```

[http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing](http://192.168.33.10/shopware/widgets/xyzListing/ajaxListing)?ordernumber=SW10179.2 **&\_\_csrf\_token=W7sfRprqXon2G2knoVOKOCbvo611mn**

Ist das so gewollt?&nbsp;
