我在Yii2有一个项目。我想执行一个ajax调用,但jQuery导航到异步请求的控制器方法。 在一个视图中,我有这个代码:
<a href="#" class="btn btn-info" style="margin-left: 15px" id="clearLogs"><?=Yii::t('app', 'Clear log history')?></a>
在自定义js文件中,我有这个(在文档准备好之后):
$('#clearLogs').click(function(e){
e.preventDefault(); // don't follow the link
$.ajax({
url: '/admin/clear',
data: {id: 1},
success: function(){
alert('success');
}
});
});
在控制器方法中我有这个:
public function clear() {
if (Yii::$app->request->isAjax) {
$flag = 777;
// .....
Yii::$app->response->format = Response::FORMAT_JSON;
return ['flag' => $flag];
}
}
如何在没有页面重新加载的情况下执行此ajax调用?
答案 0 :(得分:0)
链接用于导航到下一页,不建议使用链接来执行按钮类型功能。无论如何,您可以使用yii2组件构建一个链接,该链接可以选择不重定向
<?php echo Html::a(Yii::t('app', 'Clear log history'))',$url=false,['class'=>'btn btn-warning','id'=>'clearLogs']); ?>
答案 1 :(得分:0)
将clear()
更改为actionClear()
。