过滤器会拦截 前端页面加载 js文件的请求
学艺不精啊.....之前就总结过博客:
JAVA中解决Filter过滤掉css,js,图片文件等问题
结果现在又犯了老错误~
情况如下:
index.jsp 页面的验证码输入栏绑定了异步验证(jQurey实现),当输入内容发生变化时,异步去后台验证输入是否正确。
$(function(){
$("#a").bind('input propertychange',function () {
var registName=this.value;
var param={"method":"checkRegistName","registName":registName};
$.get("User.do",param,function(data){
if(data!="1"){
$(this).parent().children("span").html("用户名可以使用");
}else{
$(this).parent().children("span").html("用户名已被占用");
}
}.bind(this))
//ajax中的回调函数直接用this不灵,解决办法是使用bind(this)绑定this到当前事件。
});
}
但是当项目加入了登录验证(过滤器)后,发现这个验证失效了。
经过检查发现,过滤器会拦截 页面对 js文件的请求。
过滤器中加入如下代码:
System.out.println( "登录验证过滤器 loginFilter" );
String url = httpRequest.getServletPath();
System.out.println("经过过滤器的请求url为 "+url);
访问页面,工作台输出如下:
登录验证过滤器 loginFilter
经过过滤器的请求url为 /index.jsp
登录验证过滤器 loginFilter
经过过滤器的请求url为 /js/jquery.js
登录验证过滤器 loginFilter
经过过滤器的请求url为 /yanzheng
其中 “index.jsp” 为访问的页面, “/js/jquery.js”为index.jsp 中加载的js文件,“/yanzheng”是验证码图片获取时访问的后台severlet地址。
因此,前端 jQuery实现的ajax没有正常工作。
因此在过滤器中加入对 js 文件的判断,
if("/index.jsp".equals(url) |"/yanzheng".equals(url)|"/js/jquery.js".equals(url)){
chain.doFilter(request, response);
}
~问题解决了
过滤器会拦截 前端页面加载 js文件的请求的更多相关文章
- 在HTML页面中加载js文件和css文件的方法
1.在HTML页面加载js文件的方法: function loadScriptFile(filePath){ var script = document.createElement("scr ...
- 网页加载速度优化2--先加载css,然后再加载js文件。
网页加载时,是按从上到下,从左到右的顺序加载的.所以一定要先加载css文件(不要让用户看到一个杂乱无章的页面),最后再加载js文件,js一般都是处理功能的,所以不需要提前加载.先给用户观感,再给用户上 ...
- 如何动态加载js文件,$.getScript()方法的使用
有时候我们需要动态在页面中加载js文件,jquery封装了getScript()方法,不用自己再创建标签了. 写法: $.getScript("name.js",function( ...
- 网页性能优化之异步加载js文件
一个网页的有很多地方可以进行性能优化,比较常见的一种方式就是异步加载js脚本文件.在谈异步加载之前,先来看看浏览器加载js文件的原理. 浏览器加载 JavaScript 脚本,主要通过<scri ...
- 动态加载js文件
由于最近在弄echarts,关于地图类的效果,但是全国地图整体的js文件太大了,加载很耗费资源,所以要根据不同省份加载不同地区的js地图, 于是就想的比较简单, var script = docume ...
- 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...
- ExtJS4.x动态加载js文件
动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...
- Ext JS学习第十天 Ext基础之动态加载JS文件(补充)
此文用来记录学习笔记: •Ext4.x版本提供的一大亮点就是Ext.Loader这个类的动态加载机制!只要遵循路径规范,即可动态加载js文件,方便把自己扩展组件动态加载进来,并且减轻浏览器的压力. • ...
- angularLoad(用以异步加载js文件)
angularLoad(用以异步加载js文件) 使用方法: 1.执行命令 下载 lib npm install angular-load --save 2.index.html引用js <scr ...
随机推荐
- github贡献开源项目
1.正常流程 1.拷贝项目到自己的github 2.本地修改后提交远程仓库 3.创建讨论Pull requests 4.开源项目者合并到master分支 5.删除仓库 2.快速发出讨论Pull req ...
- 每日英语:Upgrade Your Life: How to speed up your PC (or Mac)
Is your desktop or laptop computer starting to feel a little poky? Even after just a few months of u ...
- anaconda的kernel对jupyter可见
在anaconda的kernel下,安装nb_conda_kernels conda install nb_conda_kernels 参考这篇博客
- Java知多少(47)多重catch语句的使用
某些情况,由单个代码段可能引起多个异常.处理这种情况,你可以定义两个或更多的catch子句,每个子句捕获一种类型的异常.当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句执行.当 ...
- 基于Java的数据采集(三)
<基于Java的数据采集(一)>:http://www.cnblogs.com/lichenwei/p/3904715.html <基于Java的数据采集(二)>:http:/ ...
- How do I convert an enum to a list in C#?
How do I convert an enum to a list in C#? This will return an IEnumerable<SomeEnum> of all the ...
- 奇怪的git代理超时问题
曾几何时在公司用代理上过网,后来在家里使用git訪问csdn code和github就出现代理超时的问题,例如以下: $ git clone https://github.com/bumptech/g ...
- Linux内核之旅
http://www.kerneltravel.net/ Linux内核之旅 Linux Kernel Travel
- echarts - 使用echarts过程中遇到的问题(pending...)
1. 配合tab切换时,被display:none的元素init设置echarts失败 2018-11-09 18:09:35 现象描述:有一个tabs选项卡,每个切换项A.B中都有使用echart ...
- JQuery EasyUI DataGrid获取当前行
1.获取当前行索引 var rowIndex = $('#dg').datagrid('getRowIndex', row); 2.根据索引删除当前行 $('#dg').datagrid('delet ...