Php Contao 2.11通过ajax调用模块
我对通过ajax调用我的模块操作有疑问 我想通过ajax调用模块中的类。但对我来说,最好的解决办法是要求全班清洁。不扩展模块 我不知道我能不能在不向数据库添加文章和模块的情况下创建url 我使用JQuery代替mooTools,但js框架并不重要。最重要的是通过ajax调用php类 我有ajax模块。但若我调用ajax.php,则需要tl_模块表中的模块id。我不想用这张桌子。(Ajax将经常调用,我不希望加载所有的contao机制。它应该非常快)Php Contao 2.11通过ajax调用模块,php,contao,Php,Contao,我对通过ajax调用我的模块操作有疑问 我想通过ajax调用模块中的类。但对我来说,最好的解决办法是要求全班清洁。不扩展模块 我不知道我能不能在不向数据库添加文章和模块的情况下创建url 我使用JQuery代替mooTools,但js框架并不重要。最重要的是通过ajax调用php类 我有ajax模块。但若我调用ajax.php,则需要tl_模块表中的模块id。我不想用这张桌子。(Ajax将经常调用,我不希望加载所有的contao机制。它应该非常快) 提前感谢您的回答。我建议您使用简单的Ajax扩
提前感谢您的回答。我建议您使用简单的Ajax扩展。 在这种情况下,您不需要使用数据库,而且您可以通过jqueryajax调用来做任何正常的事情。 它与contao2.11一起工作,您可以使用它调用php类。 我发现它比ajax.php更易于使用 您可以从以下网站获得:
class AjaxRequestClass extends System
{
public function AjaxRequestMethod()
{
if ($this->Input->post('type') == 'ajaxsimple' )
{
// DO YOUR STUFF HERE
exit; // YOU SHOULD exit; OTHERWISE YOU GET ERRORS
}
}
}
$.ajax({
type: "POST",
url: "SimpleAjax.php",
data: { type: "ajaxsimple" },
success: function(result)
{
//DO YOUR STUFF HERE
}
我在a中找到了Contao>3.x的答案 首先,在前端模板中执行以下操作:
<script type="text/javascript">
var data = {};
data["REQUEST_TOKEN"] = "<?php echo REQUEST_TOKEN ?>";
$(document).ready(function(){
$("#trigger").click(function(event){
$.post(
'<?php echo \Contao\Environment::get('requestUri')?>',
data,
function(responseText) {
alert(responseText);
}
).fail(function( jqXhr, textStatus, errorThrown ){ console.log( errorThrown )});
event.preventDefault();
});
});</script>
如果您想通过GET执行ajax,则不需要reqest令牌,而是需要jquery funktion$GET() 不错。。这当然值得投一票。。这似乎适用于contao 3.5.17(迄今为止最新版本)。。Thanx mate.作为回应,有时我们会因为缓存问题而得到204状态,你能给出解决方案吗?切断缓存?!你在说什么缓存?有时候我从(Systemwartung>>Daten bereinigen>>Internen cache leeren)清除缓存后得到204个状态码,它给我们200个状态和数据。
<script type="text/javascript">
var data = {};
data["REQUEST_TOKEN"] = "<?php echo REQUEST_TOKEN ?>";
$(document).ready(function(){
$("#trigger").click(function(event){
$.post(
'<?php echo \Contao\Environment::get('requestUri')?>',
data,
function(responseText) {
alert(responseText);
}
).fail(function( jqXhr, textStatus, errorThrown ){ console.log( errorThrown )});
event.preventDefault();
});
});</script>
public function generate()
{
if ($_SERVER['REQUEST_METHOD']=="POST" && \Environment::get('isAjaxRequest')) {
$this->myGenerateAjax();
exit;
}
return parent::generate();
}
//do in frontend
protected function compile()
{
...
}
public function myGenerateAjax()
{
// Ajax Requests verarbeiten
if(\Environment::get('isAjaxRequest')) {
header('Content-Type: application/json; charset=UTF-8');
echo json_encode(array(1, 2, 3));
exit;
}
}