微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – AJAX失败了404 …但无论如何都有效?是什么赋予了?

也许我应该闭嘴并继续往前走,但有些东西告诉我事情并不像我认为的那样好,我需要解决它.

基本上,我正在做一个简单的AJAX调用来告诉服务器用户选择了什么:一个已经存在的项目或一个新项目. AJAX看起来像这样:

var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' + $("#newProjName").val();

//AJAX call to post selections to server
$.post('/myproj/manageProjects.html',dataString);

处理此post调用的Spring MVC签名如下所示:

@RequestMapping(value="/manageProjects",produces="application/json",method=RequestMethod.POST)
public StatusResponse manageProjects(
        @RequestParam(value="existingProject",required=false) String existingProj,@RequestParam(value="newProjName",required=false) String newProj,HttpSession session){

我脑海里浮现的是,我正在调用带有我期望的正确变量和值的manageProjects.服务器处理请求并返回我创建的pojo,名为StatusResponse,包含布尔值(成功或失败)和服务器反馈消息列表.我创建一个简单状态为“true”的成功并将其传回.

客户端然后抛出404找不到的manageProjects.html并继续它的快乐方式,好像什么都没有出错.

所以….它找到了与否?如果StatusResponse类型的pojo是来自Spring MVC控制器的不恰当响应,那么正确的响应是什么?为什么消息成功命中控制器但客户端收到404?!

感谢您的任何见解……

脚注:如果这看起来类似于今天的早期问题,请道歉.我从错误的角度出现了核心问题,并在该帖子中造成了比必要更多的混乱……

解决方法

当这发生在我身上时,通常是因为dom中有一个表单,你单击一个触发xhr的提交.它会触发xhr,但它也会提交表单,如果没有提供,则认为当前url.因此,请尝试停止传播javascript事件,删除提交,或者只删除表单标记.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐