---
title: "Ajax und Extbase"
url: "https://www.typo3.net/d/119016-ajax-und-extbase"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Bootstrap","Frage","JavaScript & AJAX"]
created: "2014-10-14"
last_reply: "2014-10-15"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Ajax und Extbase

Extensions › Entwicklung · 1 Antwort · gestartet 2014-10-14

## Eröffnungsbeitrag

**daFalk** · 2014-10-14 · [Beitrag #1](https://www.typo3.net/d/119016-ajax-und-extbase/1)

Hi,

mich beschäftigt folgendes Problem:
ich entwickel unter TYPO3 6.2 eine im Prinzip simple Gallery-Extension. Der extensionkey ist fr_gallery. Den ersten roundtrip habe ich mit dem Extension-Builder gemacht.

Nun möchte ich über AJAX einzelne Bilder nachladen. Dazu muss ich eine URL-Aufruf an einen meinen ItemController an die Atcion singleshowAction schicken. Dort steht momentan nur return('bla'); drin.

Leider bekomme ich nichts zurück außer:

```html
[]
<!-- Parsetime: 0ms -->
```

Was mache ich falsch?

meine ext_localconf:

```php
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
		'FR.' . $_EXTKEY,
		'Ajax',
		array(
				'Item' => 'showsingle'
		),
		// non-cacheable actions
		array(
				'Item' => 'showsingle'
		)
);
```

mein TS:

```typoscript
tx_frgallery_ajax = PAGE
tx_frgallery_ajax {
  typeNum = 666
  config {
    disableAllHeaderCode = 1
    xhtml_cleaning = 0
    admPanel = 0
    additionalHeaders = Content-type: text/plain
    no_cache = 1
  }


  	
		10 = USER
	   	10 { 
	        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
	        pluginName = Ajax
	        extensionName = FrGallery
	        controller = Item
	        vendorName = FR
	        action = showsingle
	        switchableControllerActions {
	          Item { 
	            1 = showsingle
	          }
	        }
	     
	        settings =< plugin.tx_fr_gallery.settings
	        persistence =< plugin.tx_fr_gallery.persistence
	        view =< plugin.tx_fr_gallery.view
	        update =< plugin.tx_fr_gallery.update
	        
	  }
}
```

Wenn ich jetzt im Browser einen der folgenden Links aufrufe passiert nix ausser oben beschriebene Ausgabe.

```xml
index.php?type=666&tx_frgallery_ajax[action]=showsingle&tx_frgallery_ajax[controller]=Item
index.php?type=666&tx_fr_gallery_ajax[action]=showsingle&tx_fr_gallery_ajax[controller]=Item
index.php?type=666&fr_gallery_ajax[action]=showsingle&fr_gallery_ajax[controller]=Item
```

Doch eigentlich müsste jetzt doch ein bla zurückkommen oder?

Den Weg über Dispatcher hab ich den ganzen Tag schon versucht mit noch weniger Erfolg.

Hoffe dass mir jemand helfen kann.

bestes! Falk

## Antworten

### [#2](https://www.typo3.net/d/119016-ajax-und-extbase/2) · daFalk · 2014-10-15

Also, es läuft nun soweit.
Das neue TS:

```typoscript
ajaxCall = PAGE
ajaxCall {
	typeNum = 667
	config {
		disableAllHeaderCode = 1
		# Folgendes: Es gibt verschiedene headertypen. ich hab ehier zu Testzwecken html gfenommen, da ich mir ein Bild zurückschicken habe lassen.
		#additionalHeaders = Content-type:application/json
		additionalHeaders = Content-type:text/html
		xhtml_cleaning = 0
		admPanel = 0
		debug = 1
		no_cache = 1
		metaCharset = UTF-8
	}
		10 = USER
	   	10 { 
	        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
	        pluginName = Ajax
	        extensionName = FrGallery
	        controller = Item
	        vendorName = FR
	        action = showsingle
	        switchableControllerActions {
	          Item { 
	            1 = showsingle
	          }
	        }
	     
	        settings =< plugin.tx_fr_gallery.settings
	        persistence =< plugin.tx_fr_gallery.persistence
	        view =< plugin.tx_fr_gallery.view
	        update =< plugin.tx_fr_gallery.update
	        #Folgendes sollte eigentlich in der constants eurer Extension angegeben werden, je nachdem wo eure DS gespeichert werden, also anpassen. :)
	        persistence.storagePid = 22
	  }

}
```

nun kann ich alles aufrufen in dem ich, egal wo ich mich befinde, einfach ?type=667 anhänge.

Beim AJAX-Aufruf allerdings gibts noch eine Besonderheit:

```javascript
function loadImage(){
    if($xhr !== undefined) { $xhr.abort(); } 
    $xhr = $.ajax({
        url: "http://www.deineurl.de/index.php?type=667" ,
        type: "GET",
        

        success: function(data) {
           
            console.log(data)
        },
        error: function(error) {
           console.log(error.responseText);               
        }
    });
}
```

Wenn keine Headermitgesandt werden (disableAllHeaderCode =1) dann kommt das Ergebnis ins error.responseText. Das  nervt.

Bestes.

---

Quelle: „Ajax und Extbase“, typo3.net, https://www.typo3.net/d/119016-ajax-und-extbase
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
