この記事では、WeChatで前のページに戻る方法、ページ内のAJAXリクエスト、無効なGetリクエストの問題の分析と解決策を紹介しますので、必要な友達は参考にしてください
まずは問題の原因を分析してください
私が最近 WeChat プロジェクトに取り組んでいたとき、非常に一般的な状況に遭遇しました。ユーザーが「マイ パーソナル センター」に入ると、次のような要件があります。クリックすると認証情報を入力するボタンにジャンプします。 クリックすると認証情報入力ページに移動し、情報を入力して送信します。ユーザーが前のページに直接戻ったとき。認証ステータスを「認証中」に変更する必要があります。現時点では、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(); }
バックグラウンド コントローラーもデフォルトで GET を受け取りました。
@RequestMapping(value = "/isAuthenticing", method = RequestMethod.GET) @ResponseBody public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException { //方法体; }
解決策
前のページに戻るたびに、ページ内の ajax メソッドは通常どおり実行されますが、バックグラウンドで Get メソッドを使用することは不可能であることがわかっています。コントローラーはリクエストされません。リクエストによって返される値は、ページの最後にロードされた値でもあります。現時点では、具体的な理由はわかりません。
その後、試してみようという気持ちで 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のpostメソッドで0から始まる数値を直接返すエラー解析
以上がWeChatが前のページに戻り、ページ内のAJAXリクエストがGetリクエストに対して無効になる問題を解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。