この記事では主に、前のページに戻る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 { //方法体; }
解決策
実践により、Get メソッドの使用は不可能であることが証明されました。はい、前のページに戻るたびに、ページ内の ajax メソッドは通常どおり実行されますが、バックグラウンド コントローラーは要求されません。リクエストは、ページが最後にロードされたときの値でもあります。現時点では、具体的な理由はわかりません。
その後、試してみようという気持ちで 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 リクエストの問題を解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。