下面的视图由ajax呈现并从控制器返回到JS,它将视图置于正确的容器中:
$page = $this->renderAjax("view", [
"dataProvider" => $dataProvider
]) ;
Yii::$app->response->format = 'json';
return array("error"=>false,"page"=>$page);
查看:
<?=
ListView::widget([
'id'=>'dataListId',
'dataProvider' => $dataProvider,
'itemOptions' => ['class' => 'item'],
'itemView' => '_dataItemView',
'summary'=>'',
'emptyText'=>$emptyPage
])
?>
<?=
$this->render("_activeFormPage")
?>
messages?id = 1:950主线程上的同步XMLHttpRequest是 由于其对最终用户的不利影响而被弃用 经验。如需更多帮助,请查看https://xhr.spec.whatwg.org/。
但是这给出了完全刷新时同步XMLhttprequest的chrome中的上述错误,我通过触发器点击按钮来模拟ajax,该按钮执行ajax并获取数据。一旦注释了渲染_activeFormPage的行,错误就会消失。
我们如何摆脱同步ajax错误,因为在从jquery进行ajax调用时,javascript async保持默认值
答案 0 :(得分:3)
经过一些调试找到解决方案,将在此处发布其余的yii2人 - &gt;
这是因为<script>
标记出现在控制器的输出中,即HTML到ajax成功回调,它使用它来使用jquery更新dom .html
我们需要预取这些javascript,以便yii2不必在renderAjax上懒惰地包含新的脚本标记,因为它已经存在。所以取决于AppAsset文件,我特意将导入添加到ActiveFormAsset和ValidationAsset,这在我的案例中是罪魁祸首
public $depends = [
'yii\web\YiiAsset',
'yii\widgets\ActiveFormAsset',
'yii\validators\ValidationAsset',
'yii\grid\GridViewAsset',
'yii\bootstrap\BootstrapPluginAsset',
'\odaialali\yii2toastr\ToastrAsset'
];