「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript Fetch APIでログインした後、リダイレクトを処理する方法は?

JavaScript Fetch APIでログインした後、リダイレクトを処理する方法は?

2025-02-06に投稿しました
ブラウズ:917

How to Handle Redirects After Login with JavaScript Fetch API?

JavaScript fetch api?

を使用してjavascript fetch apiを使用してログインした後、ユーザーを別のページにリダイレクトする方法RedirectResponseを使用すると、クライアント側でリダイレクトが自動的に追跡されます。これは、redirectモードがfetch()関数でデフォルトで従うように設定されているためです。その結果、ユーザーは新しいURLにリダイレクトされませんが、むしろFetch()は舞台裏でそのリダイレクトに従い、リダイレクトURLから応答を返します。応答は、リダイレクトされたリクエストの結果です。その場合、応答のURLプロパティを取得できます。これにより、**リダイレクトの後に得られた最終的なURLが返されます。リダイレクトページ)。 window.location.hrefの代わりに、window.location.replace()を使用することもできます。 HREFプロパティ値の設定との違いは、location.replace()メソッドを使用する場合、指定されたURLに移動した後、現在のページがセッション履歴に保存されないことです。

例Code:

document.getElementById( "myform")。 E.PreventDefault(); //デフォルトのアクションをキャンセルします var formelement = document.getElementById( "myform"); var data = new formdata(formelement); fetch( "http:// my-server/login"、{ 方法:「投稿」、 リダイレクト:「フォロー」、//リダイレクトを手動で処理する場合は、「マニュアル」に変更します ボディ:データ、 }) .then((res)=> { if(res.redirected){ window.location.href = res.url; //または、location.replace(res.url); 戻る; } それ以外 { return res.text(); } }) .then((data)=> { document.getElementById( "response")。innerhtml = data; }) .catch((error)=> { Console.Error(エラー); }); });
document.getElementById("myForm").addEventListener("submit", function (e) {
  e.preventDefault(); // Cancel the default action
  var formElement = document.getElementById("myForm");
  var data = new FormData(formElement);
  fetch("http://my-server/login", {
    method: "POST",
    redirect: "follow", // Change it to "manual" if you want to handle redirects manually
    body: data,
  })
    .then((res) => {
      if (res.redirected) {
        window.location.href = res.url; // or, location.replace(res.url);
        return;
      } else {
        return res.text();
      }
    })
    .then((data) => {
      document.getElementById("response").innerHTML = data;
    })
    .catch((error) => {
      console.error(error);
    });
});
注:

クロスオリジンリクエストを使用している場合、Access-Control-Exphes-Headers応答ヘッダーをサーバー側に設定して、場所を含める必要があります。ヘッダ。これは、CORSに適用された応答ヘッダーのみがデフォルトで公開されるためです。

リリースステートメント この記事は、侵害がある場合は1729207339に複製されています。勉強[email protected]に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3