我想向我的一个子控制器方法发送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';
}
}
答案 0 :(得分:0)
我会称这个网址为:index.php?option=com_mycomponent&task=search.locator&format=json&<?php echo JUtility::getToken() ?>=1
注意,任务有两部分,第一部分在点之前是控制器,第二部分是函数。另请注意format参数,这个参数告诉Joomla在search.json.php
目录中查找名为controllers
的文件。
控制器类必须命名为MycomponentControllerSearch
此外,响应需要进行json编码。你可以这样做: $ response = array( &#39;状态&#39; =&GT; &#39; 0&#39 ;, &#39;错误&#39; =&GT; JText :: _(&#39; JINVALID_TOKEN&#39;), ); echo json_encode($ response);
发送响应后,使用JExit()
终止脚本。