• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

当jsp文件放在某个文件夹下时jquery的.ajax方法失效的解决方案

时间:2015年04月02日 15:47:35    来源:魔法猪系统重装大师官网    人气:2457

 我的页面的代码如下,jquery-1.4.2.min.js导入没有问题,本来这个文件和jquery-1.4.2.min.js是放在webroot目录下的,可以正常运行。
但是我把这两个文件一起放在一个名为test的文件夹下后$.ajax(...)就像没有执行一样,服务器端一点反应都没有(根本就没有访问TestServlet),浏览器的地址栏里只是在路径的末尾加了个#号,没有什么变化,也就是说,页面只是调回本页面而已。 alert("in test");和alert("end");都被执行了,就是中间的$.ajax没有执行


 

网上有关这个得问题很少,由于页面上没哟什么变化、服务器又没有任何反应,$.ajax方法又不是自己写的,所以找bug非常困难。后来迫不得已,只有把调试深入到jquery里,但是jquery-1.4.2.min.js里没有换行,调试和查看代码很困,于是我下载了一个uncompressed版的jquery-1.4.2.js来替换jquery-1.4.2.min.js。然后用ie8调试(firebug也可以),调试到5179行查看xhr对象的responseText属性才发现服务器端的报错为404(...test/TestServlet is not avalible),这才知道是服务器再找Servlet的时候找不到匹配的url。

于是我把web.xml里的url-pattern改为了test/TestServlet就可以了,但是test文件夹外的jsp文件访问相同的Servlet时却出了想类似的错,这时我才想起来,要把jsp页面里的basePath设置一下(basePath作用就是设置该页面的路径的前缀),就可以去掉url上的文件夹名了。

具体方法如下:

1. web.xml文件里url-pattern不需要改动,保持原来的就可以了

2. 在前面加上:

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
3. 在里添加: (base标签设置了该页面里其他路径的前缀)

 

OK~~搞定了,只要能找到报错就容易解决问题,最怕的就是看不到报的错,运行又不正常!

当,jsp,文件,放在,某个,文件夹,下时,jquery,的
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部