返回

TYPO3 Ajax 路由故障排除指南:无法找到 Ajax 路由?

php

TYPO3 Ajax 路由问题故障排除指南

简介

Ajax 路由是一个强大功能,允许您在不重新加载页面的情况下,通过 JavaScript 与服务器进行通信。但是,有时会出现无法找到 Ajax 路由的问题。本指南将深入探究此问题并提供解决此问题的方法。

检查路由配置

第一步是检查 Ajax 路由的配置。确保在 AjaxRoutes.php 文件中正确定义了路由:

<?php
return [
    'myextension_example_dosomething' => [
        'path' => '/ajaxcool/do-something',
        'target' => ExampleController::class . '::doSomethingAction',
    ],
];

接下来,在 ext_localconf.php 文件中启用路由:

$GLOBALS['TYPO3_CONF_VARS']['FE']['ajaxRoutes']['myextension_example_dosomething'] = [
    'path' => '/ajaxcool/do-something',
    'target' => ExampleController::class . '::doSomethingAction',
];

启用 eID

还要确保在 ext_emconf.php 文件中启用了 eID:

$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['tx_myextension_example'] = 'EXT:myextension/Classes/Controller/ExampleController.php:ExampleController';

检查 JavaScript

接下来,检查用于触发 Ajax 请求的 JavaScript。确保路径与路由配置匹配:

fetch(`${baseUrl}/ajaxcool/do-something?input=${inputNumber}`, {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
    },
})

检查控制器

确认 ExampleController 存在,并且包含 doSomethingAction 方法。

其他提示

  • 清除浏览器缓存。
  • 禁用或刷新 TYPO3 缓存。
  • 启用服务器端和客户端上的调试日志记录。
  • 检查 web 服务器配置是否正确处理 Ajax 请求。

更新

如果您已经尝试了以上步骤,请考虑以下内容:

  • 检查 Services.yaml 文件的配置。
  • 查看扩展的 ext_tables.sql 文件中是否包含必要的数据库表。
  • 启用 error_reporting 以显示服务器端错误消息。

常见问题解答

  1. 为什么无法找到 Ajax 路由?

    • 检查配置、启用 eID、检查 JavaScript 和控制器。
  2. 如何清除 TYPO3 缓存?

    • 转到 typo3conf/PackageStates.php,将 clearCache 设置为 true,然后访问站点。
  3. 如何启用调试日志记录?

    • LocalConfiguration.php 文件中将 $GLOBALS['TYPO3_CONF_VARS']['SYS']['devLog'] 设置为 1
  4. 什么是 eID?

    • eID 是一个扩展入口点,它充当一个与服务器通信的桥梁。
  5. 为什么我收到 404 错误?

    • 确保路径与路由配置相匹配,并且 web 服务器正确配置。

结论

Ajax 路由问题故障排除需要系统的方法。遵循本文概述的步骤,您应该能够解决此问题并有效地使用 Ajax 路由。请记住,调试和解决问题可能需要时间和耐心。