【发布时间】:2020-07-26 18:43:52
【问题描述】:
我正在尝试对我的控制器进行 Ajax 调用。
我在表单中放置了一个隐藏链接,如下所示:
<f:link.action action="ajaxCheckEmailExistsFE" controller="Profiles" class="hidden" id="checkEmailExistsAjaxLink"></f:link.action>
在我的 Javascript 中,我从这个链接中提取了 href:
var target = $('#checkEmailExistsAjaxLink').attr('href');
然后使用 jQuery 的 $.post 方法发送我的请求。
当链接被调用时,我得到了臭名昭著的错误
The action \"ajaxCheckEmailExistsFE\" (controller \"Profiles\") is not allowed by this plugin. Please check TYPO3\\CMS\\Extbase\\Utility\\ExtensionUtility::configurePlugin() in your ext_localconf.php
但是ext_localconf.php中明确设置了动作!
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'MyVendor.MyExt',
'MyPlugin',
[
'Profiles' => 'editFE, showFE, updateFE, ajaxCheckEmailExistsFE'
],
// non-cacheable actions
[
'Profiles' => 'editFE, showFE, updateFE, ajaxCheckEmailExistsFE'
]
);
相同的工作流程在 BE 模式下完美运行。
我在 updateFE-Action 上遇到了同样的问题。提交表单后,我得到了与上面相同的错误。我不得不将它添加到我的 flexform (-> <numIndex index="1">Profiles-&gt;editFE;Profiles-&gt;updateFE</numIndex>) 中的 switchable-controller-actions - 这同样很奇怪。
为什么会这样???
这是 TYPO3 9.5
[编辑] 目前,我最终将操作添加到可切换控制器操作,就像我为 updateFE-Action 所做的那样。 但是,这非常麻烦,因为每次添加新操作时我都必须在页面上设置插件操作。 如果有人有更好的解决方案,我将非常感谢!
【问题讨论】: