2017-04-13 50 views
0

我一直在這一天卡住了大約一天。我最近從7.6升級到8.7,並且我的Ajax功能不再有效。問題:我爲生成Ajax調用插件而生成的頁面爲空(始終)。TYPO3 8.7 - 爲什麼我的typeNum頁面是空的?

這裏是我用來生成頁面的代碼:

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。我認爲這不應該導致這個問題,但我想我會提到它。

非常感謝!

+0

你是什麼意思,簡單? – j4k3

+0

我的理解是否正確:在瀏覽器中定期請求「http:// your-host /?type = 427590」是可行的,但如果作爲XHR(AJAX)執行,則不會。 –

回答

0

如果你可以在你的typeNum頁面輸出一些TEXT,但是你的插件沒有任何返回,那麼你的插件可能與TYPO3 8不兼容?打開Installtool中的display_errors(將環境設置爲開發)並再次檢查頁面錯誤(或您的PHP錯誤日誌)

0

首先在LocalConfiguration.php文件中設置'displayErrors' => 1。所以,你可以在這個頁面找到確切的問題。

此外USER函數systax更改爲TYPO3 8如下所示。

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) { 
    ..... 
    ...... 
    } 
} 
0

由於TYPO3 8.x的additionalHeaders的是一個數組:

additionalHeaders { 
    10 { 
     header = Content-Type: application/html 
     replace = 1 
    } 
}