各位大家好!请帮我解决问题。
我有一些HTML
<ul class="filter_list filter_house_type">
<li><input type="checkbox" id="check1" value="House" onclick="sendRequest();"><label for="check1"><?= Yii::t('app', 'House') ?></label></li>
</ul>
JS
function sendRequest(){
$.ajax({
url: '/site/ajax',
type: 'POST',
data: { text: 'text' },
success: function(data) {
alert(data);
}
});
}
控制器操作
public function actionAjax()
{
if(Yii::$app->request->post('text')){
$test = 'Ajax request';
} else {
$test = 'Some troubles!';
}
return \yii\helpers\Json::encode($test);
}
当我点击复选框时,我会看到一个带有&#34;有些麻烦的页面!&#34;和控制台是空的。
为什么渲染页面?我怎样才能在Ajax函数中得到答案。请帮忙!
答案 0 :(得分:1)
可能需要检查帖子(&#39; text&#39;),例如:
public function actionAjax()
{
$post = Yii::$app->request->post()
if(isset($post('text')){
$test = 'Ajax request';
} else {
$test = 'Some troubles!';
}
return \yii\helpers\Json::encode($test);
}
并尝试使用方法POST而不是类型
$.ajax({
url: '/site/ajax',
method: 'POST',
data: { text: 'text' },
success: function(data) {
alert(data);
}
});
仅用于调试目的尝试使用不同的方法
使用post而不是ajax,.. test而不是text
$.post( '/site/ajax' , {test:'test'},
function (data) {
alert(data);
});
public function actionAjax()
{
if(Yii::$app->request->post('test')){
$test = 'Ajax request';
} else {
$test = 'Some troubles!';
}
return \yii\helpers\Json::encode($test);
}