[TYPO3-german] AJAX im Plugin mit eID - Zugriff auf Session

Dr. Dieter Porth web37p2 at web59550.greatnet-hosting.de
Mon Jun 19 20:03:15 CEST 2017


Hallo David,

soweit ich weiß, gibt es kein zwei Codierungen für das Amp-Zeichen '&'. 
Es ist also fraglich, ob deine Lösungsbeschreibung dem Nächsten helfen 
wird. Oder habe ich dich falsch verstanden?

Dass es aktuell funktioniert, kann bei TYPO3 immer AUCH besagen, dass du 
mal an einer funktionierenden Variante vorbeigekommen bist, die sich 
zufällig etwas hartnäckiger in einer der Caches temporär festgesetzt 
hat. Besonders Irrsinn-fördernd sind RealUrl-Mappings auf fehlerhafte 
Links, weil auch mehrfache Cache-Löschen den Fehler nicht beseitigt.

Es könnte aber auch sein, dass deine TypeNum-Definition den 
Session-Controller jetzt direkt anspricht., da pageType vor  der pageId 
ausgewertet wird.

Ich vermute, dass du eine Variation deiner schon erwähnten Definition 
verwendest, die u.a. folgende Zeile enthielt:
10 < tt_content.list.20.kksession2_kksession2
Die Schreibweise, die ich zuerst bei der Extension Mask gesehen habe, 
habe ich bislang noch nicht wirklich verstanden, weshalb ich nicht sagen 
könnte, warum und nach welchen Prinzipien sie funktioniert. Oder 
verwendest du jetzt beim TypeNum die Bootstrap-Methode.

Funktioniert dein Konstrukt auch bei folgendem
...?id=965&type=99&...
, wobei die Seite mit der Id=965 existieren sollte?

<script>
    var ajaxUrl = '<f:uri.action action="session" pageType="99" 
page="965"/>';
</script>

Aber ich freue mich für dich, dass du scheinbar eine Lösung gefunden hast.

Mit besten Grüßen

      Dieter Porth

P.S.
Funktioniert dein Konstrukt auch, wenn du einen zweiten Controller, z.B. 
IndexDoofController, definierst, der eine Session-Action enthält, die 
was anderes macht?
Funktioniert dein Konstrukt auch ohne Angabe der Session-Action im Link, 
was auf einen TypeNum-Einfluss oder Cache-Renitenz hindeuten würde.


Am 18.06.2017 um 19:52 schrieb David Brünner:
> :-D JIPIII :-D
>
> Ich habs!!!!
>
> Der einzige Fehler war die Codierung der URL.
> So sieht meine Index.html aus:
> <script>
> var ajaxUrl = <f:uri.action action="session" pageType="99"/>
> </script>
>
> An folgenden URL geht dann der Ajax-Request: xxx?id=1&type=99&...
> Der muss aber heißen: xxx?id=1&type=99&
> ==> & NICHT &
>
> Komisch ist nur das mir dann TYPO3 garnicht mekert.
> Auch nix von wegen: Session nicht definiert (wenn der Eintrag für 
> sessionAction in der ext_localconf.php fehlt).
>
> Hier mein (fast) vollständiger Code:
> IndexController:
> <?php
> namespace KKSoftware\Kksession\Controller;
>
> use TYPO3\CMS\Core\Utility\GeneralUtility;
> use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
>
> class IndexController extends ActionController {
>     public function indexAction() {
>
>     }
>
>     public function sessionAction() {
>         /** @var 
> \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController $TSFE */
>         $TSFE = $GLOBALS['TSFE'];
>         $mode = GeneralUtility::_POST('mode');
>         $data = null;
>         switch ($mode) {
>             case 'schreibe':
>                 $sesVal = GeneralUtility::_POST('sesVal');
>                 $TSFE->fe_user->setKey('ses', 'sesVal', $sesVal);
>                 break;
>             case 'lese':
>                 $data = $TSFE->fe_user->getKey('ses', 'sesVal');
>                 break;
>         }
>         return json_encode(['sesVal' => $data]);
>     }
> }
>
> Index.html
> <script>
>     var ajaxUrl = '<f:uri.action action="session" pageType="99"/>';
> </script>
>
> session.js
> $().ready(function () {
>     ajaxUrl = ajaxUrl.replace(/&/g, '&');
>
>     $('button').on('click', function() {
>         var mode = $(this).attr('data-mode');
>         $.ajax({
>             url: ajaxUrl,
>             method: 'POST',
>             dataType: 'json',
>             data: {
>                 mode: mode,
>                 sesVal: $('#test').val()
>             },
>             success: function (result) {
>                 console.log(result);
>             },
>             error: function () {
>                 console.log('error');
>             }
>         });
>     });
> });
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

-- 
----
Dr. Dieter Porth - Web-Entwickler



More information about the TYPO3-german mailing list