当前位置: 首页 > 知识库问答 >
问题:

将Typo3从版本4. x升级到7. x后,Ajaxendpoint不再工作

桂智志
2023-03-14

我已经将Typo3从版本4升级到版本7,ajaxendpoint不再工作,有人知道typoscript中简单ajaxendpoint定义的使用是否有未记录的更改吗?或者可能是请求的URL现在不同了?

原始定义如下所示:

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为:

指数html" target="_blank">php?id=176

我仅在调试模式下获得as请求结果:

<!-- Parsetime: 42ms -->

因此,打字稿的定义似乎在起作用,但似乎有些地方出了问题:(

更新:我找到了解决方案:

10 < tt_content.list.20.tx_courses_ajax

必须删除,因为它与版本4中的操作不同(而且也不再需要),在这之后,我收到了带有错误消息的响应。该消息表示此控制器无法使用所需的操作。在这之后,我已经深入挖掘,扩展名的第一个字母必须配置为大写,否则它将无法工作。

共有1个答案

益麻雀
2023-03-14

只是猜测,但也许配置中缺少vendorName

 类似资料:
  • 如果您打算升级一个早先版本的 Jekyll,那么一些发生在 1.0 及 2.0 版本中的相关变化,您需要首先了解下。 在我们开始动手之前,请先获取最新版本的 Jekyll: $ gem update jekyll 立即开始 想快速构建并运行一个全新的 Jekyll 站点吗?那么只要执行 jekyll new SITENAME 即可!该命令会创建一个包含了 Jekyll 最基础框架的文件夹。 Jek

  • 老版本的Flask-SocketIO有完全不同的一系列依赖包。老版本依赖gevent-socketio和gevent-websocket,这些包 1.0 版本都不需要了。 尽管依赖的改变,但是 1.0 版本却没有太多重要的改变。下面是一个实际改变的详细的清单: * 1.0 版本放弃支持Python 2.6,增加了对Python 3.3, Python 3.4 和 pypy 的支持。 * 0.x 版

  • 0.2.X 0.2.2 修改package.json "bui-weex": "^0.2.2" 更新内容 bui-weex无需显式引用,通过 Vue plugin方式注入到全局; 重构组件:弹出框、弹出层、下拉菜单、ActionSheet,并统一使用v-model调用方式; 重构组件:单选、复选等组件,并统一使用v-model调用方式; 重构组件: 选项卡组件,并统一使用v-model调用方式,配

  • 我正在将grails应用程序从grails 2.5.4升级到3.1.9,我在ajax调用方面遇到了问题。 我有gsp模板在我的应用程序中使用ajax请求从服务器异步加载数据。这里是其中一个。 下面的javascript调用激活ajax请求。 这将成功调用以下控制器操作。 直到这一刻,一切都按预期进行。比它应该呈现以下gsp模板,但它没有。该属于它的地方空着,控制台没有错误 我不得不重新将资源插件中

  • 我刚刚更新了一些flutter软件包。但是,在执行flutter运行时我一直收到此错误。如果我将apk直接安装到设备上,它可以正常工作(这意味着我可以执行flutter build apk),但是,在调试模式下看不到运气。 我最初发布这个帖子时有一个multidex问题,我想我已经通过在build.gradle中将gradle地址更新为4.3.zip解决了这个问题。 任何帮助都将不胜感激。 这是我

  • 本文向大家介绍mysql版本5.5.x升级到5.6.x步骤分享,包括了mysql版本5.5.x升级到5.6.x步骤分享的使用技巧和注意事项,需要的朋友参考一下     大概步骤是:     把配置文件添加:skip-grant-tables参数,把basedir升级成新版本,启动mysql,执行命令:mysql_upgrade升级一下字典信息,然后flush privileges;刷新授权表,注意