Zum Inhalt springen

Ajax Problem - Daten werden nicht mirgesandt

Erstellt am 28. August 2012 · 14 Antworten · letzte Antwort am 28. August 2012

Tags: JavaScript & AJAX, Frage

danton ·

Check doch mal per TS-Bedingung ob es greift.

[globalVar = GP:meinparameter = 1]
ajaxCall.10 = TEXT
ajaxCall.10.value = TEST123
[global]

Unbekannter Benutzer ·

...hups...falsch gepostet...

Laut Firebug passiert folgendes, sobald ich auf einen Link mit doAjax klicke:

POST http://website.com/index.php?id=[seitenID]&type=123456789

Parameter:
id = [seitenID]
type = 123456789

Antwort-Header:
Connection	Keep-Alive
Content-Type	text/html; charset=utf-8
Date	Tue, 28 Aug 2012 10:17:49 GMT
Keep-Alive	timeout=5, max=99
Server	HTTPD
Set-Cookie	fe_typo_user=1724464a07c7deae65c1c6fe021a8363; path=/
Transfer-Encoding	chunked
X-Powered-By	PHP/5.3.8

Anfrage-Header:
Accept	text/html, application/xml, text/xml, */*
Accept-Encoding	gzip, deflate
Accept-Language	de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Connection	keep-alive
Content-Length	40
Content-Type	text/plain; charset=UTF-8
Cookie	fe_typo_user=d3d8923f1797323a98a5009c583784bd
Host	typo3.p172320.webspaceconfig.de
Referer	http://website.com/seite/nochneseite.html
User-Agent	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
X-Requested-With	XMLHttpRequest

POST:
foo=bar&param1=5&param2=5

Antwort:
Array
(
    // = $_GET-Array?
    [id] => [seitenID]
    [type] => 123456789
)
Array
(
    // = $_POST-Array?
)

HTML:
Array ( [id] => [seitenID] [type] => 123456789 ) Array ( )
danton ·

Hm d.h. er gibt Dir sauber Dein get-array zurück.
Wenn Du zuerst Dein Post beim print angibst gibt er dann das gleiche zurück?

Unbekannter Benutzer ·

Ja, dann ist es halt umgekehrt: Array ( ) Array ( [id] => 32 [type] => 123456789 )

E: Das komische ist halt auch, dass das ganze laut Firebug doch passen sollte, oder? Kann das am Caching liegen?

danton ·

Naja Firebug sagt das get geht aber post nichts zurück gibt.

Caching hatte ich auch schon überlegt.

Unbekannter Benutzer ·

Das hier: print_r(t3lib_div::_POST()); gibt ebenfalls ein leeres Array array() aus.

Ich hab jetzt mal Caching in meiner Extension folgendermaßen deaktiviert:
ext_localconf.php:
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_psestates_pi1.php', '_pi1', 'list_type', 0);

In class.tx_myext_pi1.php:
public $pi_checkCHash = FALSE;
$this->pi_USER_INT_obj = 1; (in der Main-Funktion)

=> Gleiches Ergebnis.

E: Auch wenn ich auf der Seite direkt den Cache deaktiviere ändert sich nix.

Unbekannter Benutzer ·

Meinst du die Extension pre $GLOBALS["TSFE"]->set_no_cache(); gar nicht zu Cachen? Hab ich schon probiert, funktioniert nicht.

Ich hab mir jetzt beim Request $GLOBALS ausgeben lassen.
Dort gibts
[HTTP_RAW_POST_DATA] => foo=bar&param1=5&param=5
direkt danach
[_POST] => Array ( )
[HTTP_POST_VARS] => Array ( )

Es kommt einfach kein POST an...ist mir völlig unklar.

Unbekannter Benutzer ·

Ich glaub es funktioniert...zumindest im Moment.

Im JS-Request hab ich die Option "urlEncode: false" entfernt. Nun kommt sowohl POST als auch GET an.
Die Option hab ich am Anfang dort eingefügt, weil Ajax eben nicht funktioniert hat. Wsl. war das aber irgendein andere Fehler.

Hoffentlich bleibt das jetzt so 🙂 .

Danke für die Hilfe danton!

E: Nice...jetzt gehts nimmer. WTF?
E2: Jetzt hab ich beim POST eine 500 Internal Server Error? Wo kommt der den her?
E3: Ok, das war jetzt ein PHP-Fehler...Ajax funktioniert aktuell wieder!

danton ·

Hi

Ich meinte zum einen das mit dem cache aber vor allem das mit dem name="tx_myext_pi1[feldname].
Außerdem wird in dem Post auch ein Tutorial für Ext.-Programmierung verlinkt

Gruß Niels