Ajax请求控制台报错 [ 2.0 版本 ]
我在youtube上看一个Yii2的课程的时候, 跟视频作者练习使用bootstrap的Modal 模组来加载一个创建内容的表单, 但是通过ajax请求获取html的时候,控制台报错,说
主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响。更多帮助请见 http://xhr.spec.whatwg.org/
然后表单里面的各项验证功能都无法正常使用, 这是怎么回事?
如何解决, 请教各位前辈.
共 2 个回答
-
是浏览器主线程同步处理ajax请求的做法的提示,看起来是早期的js的方法,现在已废弃。改成异步应该就可以,百度一下有很多文章。推荐使用jquery的post方法请求modal需要的数据,然后在异步回调函数中更新modal数据再弹出modal。
前端jquery代码参考:
function releasePlaylist(id,name){ console.log('realeasePlaylist - id:'+id+', name:'+name); // 在模态框中填入当前playlist id $('#modalLabel-release').attr('playlistid', id); // ajax取出广告机组选择内容 if (!has_release_playlist_model_body){ $.post("/advertise/schedule/get-group-list", { }, function (data,status) { //console.log(data); var ret = eval('(' + data + ')'); if (ret['result'] == 'OK') { $('#release-body').html(ret['group-list']); has_release_playlist_model_body= true; } } ); } $('#playlist-name-tip').html(name); //弹出模态框 $('#release-playlist-modal').modal({keyboard: false}); }
后端代码供参考:
public function actionGetGroupList() { $boxGroups = BoxGroup::find()->where(['user_id'=>yii::$app->user->identity->username])->asArray()->all(); $renderResult= $this->renderPartial('_grouplist', [ 'boxGroups' => $boxGroups, 'boxesInGroup' => [], ]); return json_encode(['result'=>'OK','group-list'=>$renderResult]); }
其中
renderPartial
调用的view,可以是比较复杂的页面,可以带js等等。共 5 条回复strive 觉得很赞
猫学乖
注册时间:2015-06-26
最后登录:2016-06-14
在线时长:9小时44分
最后登录:2016-06-14
在线时长:9小时44分
- 粉丝3
- 金钱223
- 威望20
- 积分513