使用 JQuery 进行 Spring MVC 和 Ajax 操作

发布于 2024-09-14 07:33:15 字数 968 浏览 3 评论 0原文

我有一个名为 CreateProcessGroup.jsp 的 JSP 页面,并且使用注释控制器将对 CreateProcessGroup.htm 的请求映射到该页面。但是当我从浏览器请求页面时,我遇到了一个有趣的问题,它可以工作,当使用 jQuery $.get 方法发送请求时,我得到 404(CreateProcessGroup.htm 未找到)两个请求之间有区别吗?

我的 JSP 页面位于 WebContent 目录下,JS 文件位于 WEBContent/Jquery 下,我的函数发送如下请求:

function SendCreateProcessGroupRequest()
{
var pid = $('#pid').val();
var description = $('#processGroupDescription').val();

var x = "/CreateProcessGroup.htm";
alert(x);

$.get(x, { pid: 62, description: description },
           function(data){
             alert("Data Loaded: " + data);
           });
}

我需要将 URL 指定为 ../CreateProcessGroup.htm 吗?事实上我尝试过:

  • /CreateProcessGroup.htm
  • ../CreateProcessGroup.htm
  • /../CreateProcessGroup.htm
  • ../../CreateProcessGroup.htm
  • /../../CreateProcessGroup.htm

我的猜测是 DispatcherServlet 无法将 Ajax 请求映射到控制器,但这很愚蠢,不是吗?

我怎样才能摆脱这种情况?

谢谢大家。

I have a JSP page called CreateProcessGroup.jsp and I use an annotation controller to map requests to CreateProcessGroup.htm to that page. But I'm having an interesting issue when I request the page from browser it works, when send a request using jQuery $.get method I get 404 (CreateProcessGroup.htm not found) is there a difference between two requests?

My JSP page just under WebContent dir and JS file under WEBContent/Jquery my function sending the request like below:

function SendCreateProcessGroupRequest()
{
var pid = $('#pid').val();
var description = $('#processGroupDescription').val();

var x = "/CreateProcessGroup.htm";
alert(x);

$.get(x, { pid: 62, description: description },
           function(data){
             alert("Data Loaded: " + data);
           });
}

Do I need to give the URL as ../CreateProcessGroup.htm? Indeed I tried:

  • /CreateProcessGroup.htm
  • ../CreateProcessGroup.htm
  • /../CreateProcessGroup.htm
  • ../../CreateProcessGroup.htm
  • /../../CreateProcessGroup.htm

My guess is DispatcherServlet can not map Ajax requests to Controllers but this is stupid isn't it?

How can i get rid of the situation?

Thanks all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿童谣 2024-09-21 07:33:15

尝试这样做:

var x = "CreateProcessGroup.htm";

如果您请求的页面位于发出请求的页面旁边,则不需要前面的路径,它会(默认情况下)向同一路径发出请求,仅在末尾带有该页面/处理程序。

Try this instead:

var x = "CreateProcessGroup.htm";

If the page you're requesting is beside the one making the request there's no need for a path in front, it will (by default) make a request to the same path just with that page/handler on the end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文