栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从jQuery $ .ajax调用servlet而不出现HTTP 404错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从jQuery $ .ajax调用servlet而不出现HTTP 404错误

当您指定相对URL(不是以scheme或开头的URL

/
)时,它将相对于当前请求URL(在浏览器地址栏中看到的URL)。

您告诉您的servlet在以下位置可用:

http:// localhost:8080 / FullcalendarProject /
CheckingAjax

想象一下,运行ajax脚本的网页是通过以下方式打开的:

http:// localhost:8080 / FullcalendarProject / pages /
some.jsp

然后指定相对URL

url: "CheckingAjax"
,它将被解释为:

http:// localhost:8080 / FullcalendarProject / pages /
CheckingAjax

但这不存在。因此,它将返回HTTP 404“找不到页面”错误。

为了使其正常工作,您基本上需要使用以下方式之一指定URL:

  1. url: "http://localhost:8080/FullcalendarProject/CheckingAjax"

这不是便携式的。每次将Web应用程序移至另一个域时,都需要对其进行编辑。您无法从webapp内部进行控制。

  1. url: "/FullcalendarProject/CheckingAjax"

这也不是真正可移植的。每次更改上下文路径时,都需要对其进行编辑。您无法从webapp内部进行控制。

  1. url: "../CheckingAjax"

尽管您可以从Webapp内部完全控制它,但它实际上也不是可移植的。每次在JSP中移动到另一个文件夹时,都需要对其进行编辑,但是,如果在JSP中移动,则基本上已经很忙于编码,因此可以轻松地同时进行。

  1. 最好的方法是让JSP EL动态打印当前请求上下文路径。假设JS代码包含在JSP文件中:

url: "${pageContext.request.contextPath}/CheckingAjax"

或者将其封装在自己的JS文件中(好的做法!),然后创建一个全局JS变量:

    <script>var contextPath = "${pageContext.request.contextPath}";</script><script src="yourajax.js"></script>

url: contextPath + "/CheckingAjax"

或document元素上的HTML5数据属性:

    <html data-contextPath="${pageContext.request.contextPath}">    <head>        <script src="yourajax.js"></script>

url: $("html").data("contextPath") + "/CheckingAjax"



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号