ホームページ  >  記事  >  バックエンド開発  >  ゴランジン:タイトルはもう書いてあります。ステータスコード 301 を 200 にオーバーライドしたい

ゴランジン:タイトルはもう書いてあります。ステータスコード 301 を 200 にオーバーライドしたい

PHPz
PHPz転載
2024-02-06 10:18:08515ブラウズ

Golang Gin:标题已经写好了。想要用 200 覆盖状态代码 301

質問の内容

私はコントロール パネルを開発していて、それを構築するために数人を雇いました。彼らは皆逃げていき、私はパスタを洗うことになりました。

私がしなければならないことは次のとおりです:

  • ログインページを表示します
  • ログイン情報を確認してフォームを投稿してください
  • 公開が成功したら、ダッシュボード ページにリダイレクトします

簡単なログインプロセスだけです。問題は、ログインが成功すると、コンソールが次のようなリダイレクト ループに入るということです。 リーリー

現在、私は年上の開発者の代わりを務めているため、golang と gin についてまだ学習中または初心者です。そのため、私にとってこれはほんの初歩的なものです...

私が理解している限り、

main() はルーティング、ミドルウェアを構成し、テンプレートをロードして、エンジンを実行しています。

main.go リーリー

/ にアクセスすると、/login にリダイレクトされ、ログイン フォームが表示されます。

有効な資格情報を使用してフォームを送信すると、

/dashboard にリダイレクトされます。ログイン成功後のリダイレクトが正しいかどうかはわかりませんが、それは元の開発者が行ったことであり、正常に動作します。

routes.go リーリー

login.go リーリー

その後、

/dashboard ページが読み込まれるはずです。

dashboard.go リーリー

(

dashboard.go コードでは、データをダッシュ​​ボードに取り込むコードは長くて不要だと考えられたため、省略しました。)

    私は、dashboard.go 内のすべてのデータ クエリをコメント アウトし、単純な「こんにちは」応答を追加しましたが、それでもリダイレクトのように見えます。したがって、この gofile がデータを抽出する方法には何も問題がないことがわかります。
  • http.statusok などのさまざまな http 応答コードを使用してみましたが、サイコロは使用しませんでした。
  • dashboard.go でセッション データが実際に書き込まれ、保存されていることを確認しました。ダッシュボードの get ハンドラーをロードすると、セッション データを出力できます。したがって、セッションが正常に実行されていることがわかります。
  • ハンドラーの記述方法を変更しました。以前は、次のようにエンコードされていました:
  • リーリー
次にどこに行けばいいのか全く分かりません。ありがとう!


正解


協力してくれた皆さんに感謝します。以前の開発者に連絡して、問題を解決するのを手伝ってくれました。

彼のコードでは、何らかの理由でセッションを再度チェックするミドルウェア関数を作成しました。このコードは、セッション Cookie 内に存在しない古い変数をチェックしています。そのため、ログイン画面に戻ります。

とにかく、login.go でミドルウェアを処理していたので、私がしたことは、そのミドルウェアを削除することでした。

以上がゴランジン:タイトルはもう書いてあります。ステータスコード 301 を 200 にオーバーライドしたいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。