问题产生原因
最近在做一个微信的项目时,遇到一种很常见的情况,需求是这样的,当用户进入到“我的个人中心”的时候,会有一个点击跳转填写认证资料的按钮,点击此按钮后,会跳转到认证资料填写页面,填写资料,提交成功后。当用户直接返回到上一页的时候。需要修改认证状态为“认证中”。此时需要使用一个AJAX方法去查询认证状态,并修改页面的状态显示。
window.onload = function(){ var isProfesser=$('#isProfesser').val(); var isreview=$('#isreview').val(); var userid=$('#myId').val(); if(isProfesser=='0' && isreview=='0'){ $.ajax({ url:"/isAuthenticing",data: {userid:userid},success: function (data,textStatus,jqXHR) { if(data.result=='1'){ $('#approveadd a').html("+认证中") } },error: function () { } }); } //getMyQusetionInfo(); }
后台controller默认接收的也是GET
@RequestMapping(value = "/isAuthenticing",method = RequestMethod.GET) @ResponseBody public Map<String,Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException { //方法体; }
解决办法
后来抱着试一试的心态 我使用可POST请求,出人意料的是 使用POST请求,真个流程就走通了。
window.onload = function(){ var isProfesser=$('#isProfesser').val(); var isreview=$('#isreview').val(); var userid=$('#myId').val(); if(isProfesser=='0' && isreview=='0'){ $.ajax({ url:"/isAuthenticing", type: 'POST', success: function (data,error: function () { } }); } //getMyQusetionInfo(); }