---
title: "Backendmodul und Ajax Call auf Controller->Methode führt zu leerem Object"
url: "https://www.typo3.net/d/120495-backendmodul-und-ajax-call-auf-controller-methode-fuehrt-zu-leerem-object"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Extbase","Frage","JavaScript & AJAX","TYPO3 6"]
created: "2015-07-09"
last_reply: "2015-08-27"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# Backendmodul und Ajax Call auf Controller->Methode führt zu leerem Object

Extensions › Entwicklung · 2 Antworten · gestartet 2015-07-09

## Eröffnungsbeitrag

**ironpfu** · 2015-07-09 · [Beitrag #1](https://www.typo3.net/d/120495-backendmodul-und-ajax-call-auf-controller-methode-fuehrt-zu-leerem-object/1)

Hallo,

ich versuche gerade ein BE Modul zu erstellen.  Dabei sollen per AJAX Daten an eine Controller Methode übergeben werden und abgearbeitet werden.

Nach aktuellen DOCs gibt es dafür eine API.
Ich gabe dies nun wie folgt umgesetzt:

ext_tabels.php

```php
// BE AJAX Handler
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerAjaxHandler (
    'CoursesController::sendMailAjax',
    'PCON\\Cmt\\Controller\\CoursesController->sendMailAjax'
);
```

CoursesController.php

```php
        /**
         * AJAX Call
         * @param type $params
         * @param \TYPO3\CMS\Core\Http\AjaxRequestHandler $ajaxObj
         * 
         */
         public function sendMailAjax($params = array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj = NULL) {

        
              print_r($this);
              $lec = $this->lectorsRepository->findAll();
//            $requestArguments = $this->request->getArguments();
//            $ajaxObj->addContent('sendEmail', array('success' => TRUE));
//            $ajaxObj->addContent('content', array('content' => $requestArguments['content']));
            
            $out = array('status' => 'I am alive');
            header('Content-Type: application/json');
            return json_encode($out);
```

javascript

```javascript
            // BE AJAX Lösung bzw. eID
            jQuery('#sendMail').click(function(e) {
                var ajaxUrl = TYPO3.settings.ajaxUrls['CoursesController::sendMailAjax'];
                jQuery.ajax({
                    url: ajaxUrl,
                    type: 'POST',
                    data: {
                         'heading': 'Hallo Überschrift',
                         'subheading': 'Subüberschrift',
                         'content': 'Sinnloser Content'
                    },
                    dataType: "json",
                    success: function(result) {
                         console.log(result);
                    },
                    error: function(error) {
                         console.log(error);
                    }
                });
            });
```

Der Ajax Request funktioniert soweit und der Controller wird aufgerufen.
Nun habe ich folgende Probleme:
1.) Es werden keine Daten an den Controller übertragen. Was mache ich hier falsch?
2.) Der Controller gibt mir keine Daten zurück
3.) Das über AJAX aufgerufene Object ist quasi leer. Alle Eigenschaften (z.B. Repositories) sind leer und können daher nicht angesprochen werden.

Bitte um Hilfe...

## Antworten

### [#2](https://www.typo3.net/d/120495-backendmodul-und-ajax-call-auf-controller-methode-fuehrt-zu-leerem-object/2) · TheFlame · 2015-08-25

Hi, ich habe dasselbe Problem, das Params Array ist immer leer und ich weiss nicht, wie ich dieses befüllen kann mit jQuery. Hast du hierfür eine Lösung gefunden? Der Aufruf klappt nur, wenn du "dataType:json" entfernst - das Params Array bleibt aber trotzdem leer.

Die Repositories sind leer, weil die Framework-Konfiguration (beispielsweise Storage-PID) etc. nicht mitgeladen wird. findByUid sucht ohne Storage-Pid Eintrag, das sollte in jedem Fall funktionieren.

### [#3](https://www.typo3.net/d/120495-backendmodul-und-ajax-call-auf-controller-methode-fuehrt-zu-leerem-object/3) · ironpfu · 2015-08-27

Hi,
ich habe es inzwischen (leider wie immer sehr unschön gelöst)...
Ich habe den AJAX Call von POST auf GET geändert und hole mir im aufgerufenen Controller die Daten einfach wie folgt:

```javascript
 jQuery.ajax({
                    url: '<f:uri.action action="sendMail" />',
                    type: 'get',
                    data: requestParameter,
                    dataType: 'json',
                    cache: false,
                    async: true,
                    success: function (data) {
                        console.log(data);
                        //console.log(requestParameter);
                        jQuery("#sendMail").removeAttr("disabled");
                    },
                    error: function(data) {
                            console.log('Error');
                            console.log(data);
                    }
                });
```

```php
$getAjax = \TYPO3\CMS\Core\Utility\GeneralUtility::_GET();
```

Hoffe es hilft, ev. hat ja jemand eine bessere Idee...

---

Quelle: „Backendmodul und Ajax Call auf Controller->Methode führt zu leerem Object“, typo3.net, https://www.typo3.net/d/120495-backendmodul-und-ajax-call-auf-controller-methode-fuehrt-zu-leerem-object
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
