Typo3をバージョン4からバージョン7にアップグレードしました.Ajaxエンドポイントがもう機能していません。文書化されていないtyposcriptでの単純なajaxエンドポイント定義の使用の変更? リクエストURLが今異なっている可能性がありますか?Typo3をバージョン4.xから7.xにアップグレードした後、Ajaxエンドポイントがもう機能しない
元の定義は次のようになります。コントローラは簡易版で、このように見ている
tx_courses_ajax = PAGE
tx_courses_ajax {
typeNum = 1337
10 = USER
10 {
#userFunc = tx_extbase_core_bootstrap->run
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = courses
pluginName = calendar
switchableControllerActions {
Seminars {
1 = getEvent
2 = calendar
3 = getEvents
}
}
settings =< plugin.tx_courses.settings
persistence =< plugin.tx_courses.persistence
view =< plugin.tx_courses.view
}
config {
disableAllHeaderCode = 1
xhtml_cleaning = 0
admPanel = 0
debug = 1
no_cache = 1
tx_realurl_enable = 0
additionalHeaders = Content-type: application/json
}
10 < tt_content.list.20.tx_courses_ajax
}
:
class Tx_Kurse_Controller_SeminareController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
public function calendarAction() {
$calenderCgf = '...';
file_put_contents($docroot.'uploads/jquery.fullcalendar-mini.js', $calenderCgf);
}
/**
* @return void
*/
public function getEventAction() {
$requestParams = $this->request->getArguments();
print_r($requestParams);
}
/**
* @param string $start Y-M-D H:i:s
* @param string $end Y-M-D H:i:s
*
* @return string $seminarText
*/
public function getEventsAction($start, $end) {
$start = new DateTime($start);
$end = new DateTime($end);
$seminars = $this->seminarsRepository->findEventsInPeriod($start, $end);
$requestParams = $this->request->getArguments();
print_r($requestParams);
}
/**
* @param int $seminar
* @return void
*/
public function bindingAction($seminar) {
$seminars = $this->seminareRepository->findByUid($seminar);
$this->view->assign('seminars', $seminars);
}
}
オリジナルの要求URLは次のとおりです。
インデックス。 php?id = 176 & no_cache = 1 & tx_courses_calendar [controller] =セミナー& tx_courses_calendar [作用] = & tx_courses_calendar結合[スタート] = 2017年1月1日%2000:00:00 & tx_courses_calendar [END] = 2017年12月30日%2023:59:59 &タイプ= 1337
Iはデバッグモードで要求結果としてのみを取得する:
<!-- Parsetime: 42ms -->
だから、TypoScriptの定義が働いているようだが、何かが間違っているようです:(
UPDATE:
:私は解決策を見つけました10 < tt_content.list.20.tx_courses_ajax
バージョン4と同じ動作をしていないため削除する必要があります(それはもはや必要ではありません)。その後、エラーメッセージが返されました。メッセージは、このコントローラーでは希望のアクションが利用できないと言っています。 その後、私はもっと深く掘り下げて、Extension-Nameを最初の文字の大文字で構成する必要があります。それ以外の場合は機能しません。
私は自分で解決策を見つけ、私の最初の投稿の最後に解決策を追加しました:) – oVi