gpt4 book ai didi

jquery - yii2 activeform 同步ajax错误

转载 作者:行者123 更新时间:2023-12-01 02:52:06 29 4
gpt4 key购买 nike

下面的 View 由ajax渲染并从 Controller 返回到JS,JS将 View 放入正确的容器中:

$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 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

但这在完全刷新时同步 XMLhttprequest 的 chrome 中给出了上述错误,我通过触发单击按钮来模拟 ajax,该按钮执行 ajax 并获取上述数据。一旦注释了渲染 _activeFormPage 的行,错误就会消失。

我们如何摆脱同步 ajax 错误,因为在 javascript 中,从 jquery 进行 ajax 调用时异步已保留为默认值

最佳答案

经过一些调试找到解决方案后,将在此处发布给其他 yii2 人员 ->

这是由于<script>标签进入 Controller 的输出,即 HTML 到 ajax 成功回调,它使用它来使用 jquery .html 更新 dom

我们需要预取这些 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'
];

关于jquery - yii2 activeform 同步ajax错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43166647/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com