# PageController XMLHttpRequest

**URL:** https://forum.shopware.com/t/pagecontroller-xmlhttprequest/89772
**Category:** Programmierung
**Created:** [16. August 2021 um 06:31 UTC](https://forum.shopware.com/t/pagecontroller-xmlhttprequest/89772 "2021-08-16T06:31:39Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)
#### Post date: [16. August 2021 um 06:31 UTC](https://forum.shopware.com/t/pagecontroller-xmlhttprequest/89772/1 "2021-08-16T06:31:39Z")

</div>

Hallo,

ich möchte eine komplette Artikelseite per Ajax-Call laden. Also das ganze Dokument, nicht nur den body

```javascript
this.url = 'https://example.com/myproduct'
this.options = {
    method: 'GET',
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
}
fetch(this.url, this.options)
    .then(res => res.text())
    .then(response => {
        ...

```

Bekomme aber immer den Error

> PageController can’t be requested via XmlHttpRequest.

Wenn ich den Header weglasse funktionierts aber das ist ja auch nicht Sinn der Sache.  
Ich würde ganz gerne [Turbolinks](https://github.com/turbolinks/turbolinks) implementieren, was ja so gar nicht funktionieren würde…

---

<div class="post-metadata">

### Author: ![fabiodepaoli](https://avatars.discourse-cdn.com/v4/letter/f/cc9497/32.png) [@fabiodepaoli](https://forum.shopware.com/u/fabiodepaoli)
#### Post date: [16. August 2021 um 17:01 UTC](https://forum.shopware.com/t/pagecontroller-xmlhttprequest/89772/2 "2021-08-16T17:01:48Z")

</div>

Hallo

Ich habe kurz nachgeforscht und eine simple Antwort gefunden nur ob das so aufhebt kann ich dir nicht sagen.

Am besten du erstellst ein neues Theme und darin musst du den Controller welchen du ansprechen willst anpassen (überschreiben).

Du musst `defaults={"XmlHttpRequest"=true}` hinzufügen.

```auto
vendor/shopware/storefront/Controller/ProductController.php:86

@Route("/detail/{productId}", name="frontend.detail.page", methods={"GET"}, defaults={"XmlHttpRequest"=true})

```

Das musst du dann für alle Controller einmal durchgehen und anpassen wo es nicht gesetzt ist.

Referenz: [Stackoverflow](https://stackoverflow.com/questions/62557435/pagecontroller-cant-be-requested-via-xmlhttprequest-in-shopware-6)

---

<div class="post-metadata">

### Author: ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)
#### Post date: [17. August 2021 um 11:07 UTC](https://forum.shopware.com/t/pagecontroller-xmlhttprequest/89772/3 "2021-08-17T11:07:09Z")

</div>

Ja, den Thread mit den Annotations habe ich auch gefunden. Das habe ich jetzt mal ausprobiert und den die index-Action im ProductController mit der Annotation `defaults={"XmlHttpRequest"=true}` versehen.

Funktionier aber auch nicht, jetzt kommt der Fehler:

> Call to a member function setMetaDescription() on null

Ich vermute, wenn der Request mit `XmlHttpRequest` im Header kommt, werden diverse Funktionen nicht geladen (Header, Footer, Metadaten…), weshalb man dann immer wieder auf andere Errors läuft.

Also, entweder ohne `XmlHttpRequest` im Header oder gar nicht ☹
