ホームページ > ウェブフロントエンド > jsチュートリアル > WeChatが前のページに戻り、ページ内のAJAXリクエストがGetリクエストに対して無効になる問題を解決

WeChatが前のページに戻り、ページ内のAJAXリクエストがGetリクエストに対して無効になる問題を解決

亚连
リリース: 2018-05-23 10:07:04
オリジナル
1701 人が閲覧しました

この記事では、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=$(&#39;#isProfesser&#39;).val();
  var isreview=$(&#39;#isreview&#39;).val();
  var userid=$(&#39;#myId&#39;).val();
  if(isProfesser==&#39;0&#39; && isreview==&#39;0&#39;){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},     type: &#39;POST&#39;,     success: function (data, textStatus, jqXHR) {
      if(data.result==&#39;1&#39;){
        $(&#39;#approveadd a&#39;).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でjsonを使ってデータ送信を実現

AjaxでJSONを転送するサンプルコード

Ajaxのpostメソッドで0から始まる数値を直接返すエラー解析

以上がWeChatが前のページに戻り、ページ内のAJAXリクエストがGetリクエストに対して無効になる問題を解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート