layer.open时看不到弹出框的关闭按钮

今天遇到两个问题。
第一个,layui.open时,打开的框框没有关闭按钮!
同时还有一个问题是ajax调用action的时候,出现返回码302,访问不到的情况。

这两个问题看起来并没有什么联系。

我们知道layui想让框框出现关闭按钮其实很简单,只要设置closeBtn: 1,就可以了。
但是我的代码的确是这样:
layer.open时看不到弹出框的关闭按钮_第1张图片
那为什么是没有关闭按钮呢?
鼓捣了一上午,下午终于找到原因,原来是关闭按钮的背景图片为icon.png,但是访问这个图片出现了返回码302的状况……

所以两个问题的原因都是返回码302导致的。

HTTP返回码302代表的含义是重定向

一般出现302返回码的原因是被服务器拦截了,至于为啥拦截,各自有各自的情况。
我这里icon.png被拦截,是因为web.xml中设置了容器的拦截器DispatcherServlet,容器会自动拦截静态资源,除非设置了servlet-mapping使其通过
如下:

<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
</servlet-mapping>

但是这里并没有运行.png格式的,所以只需要加上下面的代码,就OK了。

<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.png</url-pattern>
</servlet-mapping>

但是第二个问题就不是这样了,是因为设置了对action的拦截,如果没有在另一个系统赋予权限的话,是不可以使用的,所以,给它赋予权限就可以了。

你可能感兴趣的:(java基础)