开发者社区> 问答> 正文

jqueryajax提交Struts2请求 action的namespace问题 400 请求报错 

我在用 $.ajax()   提交struts2请求时遇到了问题:
1)    var url = "ips/registerSubject.do"  当提交的url为这个的时候,由于struts2配置的namespace
提交的URL变成了    http://127.0.0.1:8080/p2p/admin/ips/registerSubject.do 
而正确的 url:http://127.0.0.1:8080/p2p/ips/registerSubject.do
当前页面的是由namespace为admin的一个action返回的页面,我现在要发送的是namespace为ips的action
2)然后 我重新定义url, 
var url =  "<%= basePath%>ips/registerSubject.do";
这次url对了:http://127.0.0.1:8080/p2p/ips/registerSubject.do
但是ajax的请求发不出去

怎么处理呢?

展开
收起
kun坤 2020-05-28 16:07:37 615 0
1 条回答
写回答
取消 提交回答
  • 直接使用绝对路径就不会错了!
    <%= basePath%>+namespace+actionName 应该错不了 ######你这是蛋疼的问题,自己的设计问题######不是设计的问题 据我观察 问题可能是这样子的 发送的ajax请求是异步的 ,在发送这个请求之后,我要把页面当前页面跳转到另外一个页面,使用了 window.location.href 进行跳转 ,所以浏览器把之前那个ajax请求的对象释放了,所以ajax请求不发送,js继续往下走,跳转了页面######没看明白,呵呵!######把代码贴出来,没明白你的逻辑 ###### $.ajax({

                          type:"post",

                          url:postUrl,

                          data:param,

                          dataType:"json",

                          success:function(data){

                              if(data.err == 1){

                                alert(data.msg);

                            }

                          }

                      });

                      window.location.href="borrowf.do";######ajax 请求成功后,再跳转页面啊###### 就是相对路径问题嘛, 
    var url = "ips/registerSubject.do"
    改成
    var url = "../ips/registerSubject.do"

    2020-05-29 13:07:58
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载