我试图使用ajax调用来调用servlet,如下所示:
$.ajax({
url: 'CheckingAjax',
type: 'GET',
data: { field1: "hello", field2 : "hello2"} ,
contentType: 'application/json; charset=utf-8',
success: function (response) {
//your success code
alert("success");
},
error: function (errorThrown) {
//your error code
alert("not success :"+errorThrown);
}
});
但是,它开始error
运行并显示警报:
未成功:未找到
这是怎么引起的,我该如何解决?
当您指定相对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:
url: "http://localhost:8080/FullcalendarProject/CheckingAjax"
这不是便携式的。每次将Web应用程序移至另一个域时,都需要对其进行编辑。您无法从webapp内部进行控制。
url: "/FullcalendarProject/CheckingAjax"
这也不是真正可移植的。每次更改上下文路径时,都需要对其进行编辑。您无法从webapp内部进行控制。
url: "../CheckingAjax"
尽管您可以从Webapp内部完全控制它,但它实际上也不是可移植的。每次在JSP中移动到另一个文件夹时,都需要对其进行编辑,但是,如果在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"
问题内容: 我试图从jQuery的.ajax()函数调用servlet。 目前,我认为我什至没有在调用servlet或将参数传递给它,但是许多Googling似乎并没有帮助。有任何想法吗? 这是我的html: 邮件加载 还有我的web.xml Servlet只是目前的模板: 问题答案: 这里有几个问题: 您正在调用System.out.println,它只是将输出发送到标准输出-而不是发送到浏览器
伙计们!我对servlet是新手。我尝试按照book的步骤创建servlet。它只是一个登录表单,用户输入用户ID和密码,点击登录,然后在网页中显示输入值。但是,当我输入用户ID和密码时,我得到Http404错误。 我想知道context.xml可能有什么问题,但我不确定。我还尝试用xml映射servlet,但仍然得到错误。 消息/userlogin/userservlet 来源服务器没有找到目标
问题内容: 我需要使用foursquare API搜索场所。当然,它是跨域的。 它在Firefox中没有任何问题,但是在Internet Explorer中(我已经测试过7、8、9)。 我的JavaScript代码如下所示: 在Firefox中,它可以完美显示接收到的数据。在Internet Explorer中,它登录控制台: 我该怎么办? 问题答案: 我在Windows Mobile 7上对此进
问题内容: 我一直在努力使AJAX与Jquery一起使用。到目前为止,我最大的问题是我真的不知道如何弄清楚我在哪里犯错。我真的没有调试AJAX调用的好方法。 我正在尝试建立一个管理页面,其中我要执行的功能之一就是更改SQL数据库中设置的权限。我知道.click函数正在被触发,因此我将其范围缩小了,但是我不确定从AJAX调用到SQL查询的链在哪里出了问题。 我的.js代码: 我的.php处理程序:
我想在Java WebApp中使用Tomcat7从ajax调用Servlet。 只有当我使用整个url“http://localhost:8080/webappname/vservlet”时,它才起作用,但只在我的PC中起作用。然而,我必须将它部署在具有商业域名的服务器上,这显然不同于“localhost”。 拜托,谁能告诉我是否有一种方法可以用相对URL来寻址servlet?因为如果我使用像'h
问题内容: 我试图在我自己的函数中使用jQuery ajax调用的返回值,但它始终返回未定义的值。 ajax调用绝对有效,因为当我取消注释警报时,我得到了正确的返回,并且可以在firebug中看到它。我在做蠢事吗? 问题答案: AJAX调用是异步的-这意味着AJAX请求是按常规程序执行顺序发出的,并且在您的程序中这意味着不会将数据返回警报。 您不能以这种方式使用调用的返回值,而是将利用AJAX返回