Ich habe hier ein sehr merkwürdiges Verhalten.
Warum funktioniert dieser Ajax-Request nicht:
setup.ts
ajax = PAGE
ajax {
typeNum = 99
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:application/json
admPanel = 0
debug = 0
}
10 < tt_content.list.20.kksession_kksession
}
IndexController:
<?php
namespace KKSoftware\Kksession\Controller;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
class IndexController extends ActionController {
public function indexAction() {
}
public function sessionAction() {
return json_encode(['test' => 'wert']);
}
}
Templates/Index/Index.html:
<script>
var ajaxUrl = '<f:uri.action action="session" pageType="99"/>';
</script>
session.js:
$().ready(function () {
$.ajax({
url: ajaxUrl,
type: 'post',
dataType: 'json',
success: function(result) {
alert(result);
},
error: function(result) {
console.log('ERROR');
console.log(result);
}
});
});
Die Developer Konsole liefert mir im Netzwerktab:
Request URL:http://localhost/typo8/index.php?id=1&type=99&tx_kksession_kksession%5Baction%5D=session&tx_kksession_kksession%5Bcontroller%5D=Index&cHash=110588b4f0d2913288e34c9d28da1e0b
Request Method😛OST
Status Code:200 OK
Allerdings ist der Response nicht das erwartete JSON {test:wert} sondern der Inhalt meiner Webseite
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--
This website is powered by TYPO3 - inspiring people to share!
TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
TYPO3 is copyright 1998-2017 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
Information and contribution at https://typo3.org/
-->
<title>root</title>
<meta name="generator" content="TYPO3 CMS">
<link rel="stylesheet" type="text/css" href="/typo8/typo3temp/assets/css/20658bc1f2.css?1497650740" media="all">
</head>
<body>
<div id="c21" class="frame frame-default frame-type-list frame-layout-0"><script>
var ajaxUrl = 'index.php?id=1&type=99&tx_kksession_kksession%5Baction%5D=session&tx_kksession_kksession%5Bcontroller%5D=Index&cHash=110588b4f0d2913288e34c9d28da1e0b';
</script></div>
<script src="/typo8/typo3conf/ext/kksession/Resources/Public/Js/jquery-3.2.1.min.js?1497200563" type="text/javascript"></script>
<script src="/typo8/typo3conf/ext/kksession/Resources/Public/Js/session.js?1497650554" type="text/javascript"></script>
</body>
</html>
<!-- Cached page generated 17-06-17 00:05. Expires 18-06-17 00:05 -->
<!-- Parsetime: -75ms -->
Desweiteren bekomme ich nach dem Ajax-Request (der laut der Konsole ja erfolgreich war) nicht das erwartete alert() sondern den Inhalt für den Fehlerfall in der Konsole angezeigt.
Was läuft da falsch?😢