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@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

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

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an