0

我已经坚持了大约一天了。我最近从 7.6 升级到 8.7,我的 Ajax 功能不再工作。问题:我为托管 Ajax 调用的插件而生成的页面是空的(总是)。

这是我用来生成页面的代码:

ajaxselectlist_page = PAGE
ajaxselectlist_page {
    typeNum = 427590

    config {
        disableAllHeaderCode = 1
        additionalHeaders = Content-type:application/html
        xhtml_cleaning = 0
        debug = 0
        no_cache = 1
        admPanel = 0
    }

    10 < tt_content.list.20.extension_controller
}

我已经对其进行了测试,问题似乎出在插件生成上,因为我在页面上生成通用文本没有问题。

我确实设法使用以下代码让它工作得非常简单,尽管在我进行第一次 Ajax 调用时,即使它返回为空。

10 = USER
10 {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->getInstance
    vendorName = HarryLaForge
    extensionName = Inventory
    pluginName = Item
    controller = Item
}

另一点信息:当我更新到 8.7 时,我还从我的安装中删除了 boostrap_package,而不是简单地创建我自己的模板。我认为这不应该引起问题,但我想我还是会提到它。

太感谢了!

4

3 回答 3

1

从 TYPO3 8.x 开始,additionalHeaders 是一个数组:

additionalHeaders {
    10 {
        header = Content-Type: application/html
        replace = 1
    }
}
于 2017-12-04T11:59:56.080 回答
0

首先'displayErrors' => 1在 LocalConfiguration.php 文件中设置。因此,您可以在此页面上找到确切的问题。

此外,TYPO3 8 的 USER 函数系统税也发生了变化,如下所示。

page = PAGE
page.10 = USER
page.10 {
  userFunc = Your\NameSpace\YourClass->yourMethods
  vendorName = HarryLaForge
  extensionName = Inventory
} 

而你的类文件是这样的。

namespace Your\NameSpace;

class YourClass {
  /**
   * Output the current time in red letters
   *
   * @param  string          Empty string (no content to process)
   * @param  array           TypoScript configuration
   * @return string          HTML output, showing the current server time.
   */
  public function yourMethods($content, $conf) {
     .....
     ......
  }
}
于 2017-06-15T07:23:16.903 回答
0

如果您可以在 typeNum 页面上输出一些 TEXT 但您的插件没有返回任何内容,那么您的插件可能与 TYPO3 8 不兼容?在您的安装工具中打开 display_errors(将环境设置为开发)并再次检查页面是否有错误(或您的 PHP 错误日志)

于 2017-04-13T20:30:13.680 回答