您好,登錄后才能下訂單哦!
這篇文章主要介紹了微信開發中AJAX的請求和Get請求無效怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
先給大家分析問題產生原因
最近在做一個微信的項目時,遇到一種很常見的情況,需求是這樣的,當用戶進入到“我的個人中心”的時候,會有一個點擊跳轉填寫認證資料的按鈕,點擊此按鈕后,會跳轉到認證資料填寫頁面,填寫資料,提交成功后。當用戶直接返回到上一頁的時候。需要修改認證狀態為“認證中”。此時需要使用一個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 { //方法體 }
希望能夠幫助那些和我遇到同樣問題的人。
注:紅色部分為修改的部分
感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信開發中AJAX的請求和Get請求無效怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。