0

我想向我的一个子控制器方法发送一个 ajax 请求,但我一直在尝试的一切似乎都不起作用。请求看起来像

 ajax: {
                url: "index.php?option=com_mycomponent&controller=search&task=locator&tmpl=component&<?php echo JUtility::getToken() ?>=1",
                dataType: 'json',
                data: function(term, page) {
                    return {
                        q: term, // search term
                    };
                },
                results: function(data, page) {
                    return {results: data};
                }

控制器

class MyControllerControllerMyController extends JControllerLegacy
{


    function __construct($config = array()) {
        parent::__construct($config);
        echo 'test';
    }
}
4

1 回答 1

0

我会称这个 URL:index.php?option=com_mycomponent&task=search.locator&format=json&<?php echo JUtility::getToken() ?>=1 注意任务有两个部分,点之前的第一个是控制器,第二个是函数。还要注意格式参数,这个参数告诉 Joomla 在目录中查找一个命名search.json.phpcontrollers文件。

控制器类必须命名MycomponentControllerSearch

此外,响应需要进行 json 编码。你可以这样做: $response = array( 'status' => '0', 'error' => JText::_('JINVALID_TOKEN'), ); 回声 json_encode($response);

发送响应后,使用JExit()终止脚本。

于 2013-04-27T15:12:28.273 回答