完美解决:layui弹出层无法关闭/ajax请求成功,但是不进入success,也不进入error

我在使用一个叫做H-ui.admin的后台模板(基于layui)做一套管理系统。

业务:点击按钮→出现弹出层→ajax通过接口向后台发送数据→成功后,关闭弹出层。

前面都没有什么问题,就是到了关闭弹出层,真的快把我逼疯了!

1.首先,我认为是layui关闭弹出层的方式不对,就找到了网上一种简单粗暴的方式:(据说是能解决99%基于layui无法关闭弹出层的解决方法)

var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);

还是无法跳转!

2.后来,我再浏览器里面调试,发现,根本没有进 success :function()里面,但是数据库已经更新了,我就想到,是不是之前犯过的错误,ajax的dataType搞错了。

 dataType : "json" 改成  dataType : "text" 

依旧是没有跳转!于是我就加了 error:function()发现,根本是 success 和 error 都没有进!

终于!我发现了!是layui的锅!!!!

3.由于我用的是H-ui.admin(基于layui),form表单中的按钮被点击后会自动刷新页面!后来我就把<form></form>改成了<div></div>问题迎刃而解!

我再发下我完整的的Ajax吧(jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,否则都会出错,无法解析返回的json数据)

图中1,2上面都提过了

3 “${pageContext.request.contextPath}/api” 是JSP取得绝对路径的方法,也就是取出部署的应用程序名或者是当前的项目名称。

比如:

我的接口称是 api 在浏览器中输入为http://localhost:8080/api

取出来的就是/api,而"/"代表的含义就是http://localhost:8080

发布了28 篇原创文章 · 获赞 38 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Tianc666/article/details/104785665