程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 微信返回上一頁,頁面中的AJAX的請求,對Get請求無效的解決辦法,返回上一頁ajax

微信返回上一頁,頁面中的AJAX的請求,對Get請求無效的解決辦法,返回上一頁ajax

編輯:JAVA綜合教程

微信返回上一頁,頁面中的AJAX的請求,對Get請求無效的解決辦法,返回上一頁ajax


問題產生原因       最近在做一個微信的項目時,遇到一種很常見的情況,需求是這樣的,當用戶進入到“我的個人中心”的時候,會有一個點擊跳轉填寫認證資料的按鈕,點擊此按鈕後,會跳轉到認證資料填寫頁面,填寫資料,提交成功後。當用戶直接返回到上一頁的時候。需要修改認證狀態為“認證中”。此時需要使用一個AJAX方法去查詢認證狀態,並修改頁面的狀態顯示。 當時沒有按照標准的方法寫ajax方法,默認使用的方法是Get請求,前台JS代碼如下:
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 {
//方法體;
}
  解決辦法          實踐證明使用Get方法式是不行的,每次後退到上一頁的時候,頁面中的ajax方法會照常執行,但是並不會請求後台的controller,請求返回的值也是上一次加載頁面時候的值,具體原因我暫時不明確。 後來抱著試一試的心態 我使用可POST請求,出人意料的是 使用POST請求,真個流程就走通了。 前台JS代碼如下:
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},
         type: 'POST',
         success: function (data, textStatus, jqXHR) {
            if(data.result=='1'){
               $('#approveadd a').html("+認證中")
            }
         },
         error: function () {
         }
      });
   }
   //getMyQusetionInfo();
}
後台代碼:
@RequestMapping(value = "/isAuthenticing", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法體
}
希望能夠幫助那些和我遇到同樣問題的人。 注:紅色部分為修改的部分    
結語
 如果你還需要了解更多技術文章信息,請繼續關注白衣秀才的博客
 個人網站:http://penglei.top/
 Github:https://github.com/whitescholars
 微博:http://weibo.com/u/3034107691?refer_flag=1001030102_&is_all=1
   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved