Java ajax调用错误的servlet
这个奇怪的问题我似乎解决不了 我在EclipseJavaEE中工作,我有一个名为Process的servlet(映射到/Process) 有一个链接到进程Java ajax调用错误的servlet,java,ajax,jakarta-ee,servlets,Java,Ajax,Jakarta Ee,Servlets,这个奇怪的问题我似乎解决不了 我在EclipseJavaEE中工作,我有一个名为Process的servlet(映射到/Process) 有一个链接到进程 <a href="process?intent=order">Checkout</a> 我想有两个问题 首先,这是向不同项目中的不同servlet发送请求。但是,当使用doGet访问时,它可以工作。(对于doPost,我有不同的代码)是否有任何原因导致它无法识别Process.java文件中的doPost方法?是什么
<a href="process?intent=order">Checkout</a>
我想有两个问题
首先,这是向不同项目中的不同servlet发送请求。但是,当使用doGet访问时,它可以工作。(对于doPost,我有不同的代码)是否有任何原因导致它无法识别Process.java文件中的doPost方法?是什么导致它搜索另一个servlet
第二,我知道在servlet中获取数据后要做什么,但我不知道如何实际访问数据。它在“data:”中通过jquery传递,那么如何在servlet中访问它呢?第一个问题:
如果我没有弄错的话,您的问题是“当您尝试使用AJAX(在jquery函数中)发送post请求时,您没有找到所需的servlet”。
解决方案:
您需要将项目名称附加到url。 因此,假设您的servlet被放置在名为
“SomeProject”
的项目中,并且servlet被映射到名为“servletProcess”
的url。
因此,jQuery应该如下所示:var json = [];
$('#update').click(function(){
$('.items').find('input').each(function(){
var tmp = "{id:" + $(this).attr('id') + ",quantity:" + $(this).val() + "}";
json.push(tmp);
});
$.ajax( {
url : '/SomeProject/servletProcess',
type : 'POST',
data : json,
dataType : 'json',
success: function(data) {
alert("success");
}
});
});
这应该可以解决问题:)第二个问题:试试这个你的javascript代码在另一个文件中的路径不同吗?我试过url:'projectName/process'没有用。它仍然在另一个项目中调用流程@js位于MyProject/jsp/page.jsp中的标记中。。我想ajax通过URL调用,这与我的文件结构有关系吗?Aman告诉我们的是,您使用的是相对路径,因此调用是相对于当前URL的。您可以通过
url:'/your context path/process'
更改url:'process'
,并替换为正确的路径。项目的名称是什么?您在Eclipse中给出的名称?请通读我刚才发布的答案。我想这应该会有帮助:)是的!这总是最简单的事情。非常感谢你!是的,我一使用url:“/MyProject/process”它就工作了。奇怪的是我以前试过,但没用。我退出了当前在服务器下同步的所有其他项目,再试一次,它仍然重新加载了外部servlet。所以我把URL改成了你建议的,效果很好。再次感谢!如果可以的话,我会投票的!!
<button id="update">Button</button>
var json = [];
$('#update').click(function(){
$('.items').find('input').each(function(){
var tmp = "{id:" + $(this).attr('id') + ",quantity:" + $(this).val() + "}";
json.push(tmp);
});
$.ajax( {
url : 'process',
type : 'POST',
data : json,
dataType : 'json',
success: function(data) {
alert("success");
}
});
});
var json = [];
$('#update').click(function(){
$('.items').find('input').each(function(){
var tmp = "{id:" + $(this).attr('id') + ",quantity:" + $(this).val() + "}";
json.push(tmp);
});
$.ajax( {
url : '/SomeProject/servletProcess',
type : 'POST',
data : json,
dataType : 'json',
success: function(data) {
alert("success");
}
});
});