先給大家分析問題產(chǎn)生原因
最近在做一個微信的項目時,遇到一種很常見的情況,需求是這樣的,當用戶進入到“我的個人中心”的時候,會有一個點擊跳轉(zhuǎn)填寫認證資料的按鈕,點擊此按鈕后,會跳轉(zhuǎn)到認證資料填寫頁面,填寫資料,提交成功后。當用戶直接返回到上一頁的時候。需要修改認證狀態(tài)為“認證中”。此時需要使用一個AJAX方法去查詢認證狀態(tài),并修改頁面的狀態(tài)顯示。
當時沒有按照標準的方法寫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 MapString, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法體;
}
解決辦法
實踐證明使用Get方法式是不行的,每次后退到上一頁的時候,頁面中的ajax方法會照常執(zhí)行,但是并不會請求后臺的controller,請求返回的值也是上一次加載頁面時候的值,具體原因我暫時不明確。
后來抱著試一試的心態(tài) 我使用可POST請求,出人意料的是 使用POST請求,真?zhèn)€流程就走通了。
前臺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 MapString, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法體
}
希望能夠幫助那些和我遇到同樣問題的人。
注:紅色部分為修改的部分
以上所述是小編給大家介紹的解決微信返回上一頁,頁面中的AJAX的請求,對Get請求無效的問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Ajax輪詢請求狀態(tài)(微信公眾號帶參數(shù)二維碼登錄網(wǎng)站)
- 在iOS10系統(tǒng)中微信后退無法發(fā)起ajax請求的問題解決辦法