Goでテンプレートを実行した後、新しいURLでページをリダイレクトすることはできますか?

テト:

私が抱えている問題はこの投稿とほとんど同じですが、そこでの答えは、それを解決する方法についての明確な考えを実際には与えていません。

ユーザーがフォームを送信した後に新しいページにデータを送信したいのでExecuteTemplatehtml/templateパッケージから自然に使用ます。

これにより、データのある新しいページにページがリダイレクトされますが、URLは変わりません。

つまり、をhttp://example.com/login使用してフォームを送信した場合ExecuteTemplate、データを含む新しいページに移動しますが、そのURLは引き続き表示されますhttp://example.com/login

コードのhttp.Redirect(w, r, "/newPage", http.StatusSeeOther)直後に配置しようとしましたExecuteTemplateが、結果は同じでした。つまり、ページはデータのある新しいページに移動しましたが、URL http://example.com/loginは取得されずにとどまっていましたhttp://example.com/newPageこれに対する解決策はありますか?

Goバージョン1.13.3を使用しています。

コアラ・ヨン:

リダイレクト応答でテンプレートを表示する必要はありません。また、意味がありません。

希望する効果を得るには2つの方法があります。

リダイレクトあり

これが元のワークフローです。このフォームページhttp://example.com/loginは3つのステップで考える必要があります。

  1. ユーザーはログインページを開きます。そして通常のログインフォームを表示します。
  2. ユーザーはログインフォームを送信します。ログインフォームから送信を受け取るので、ユーザーをフラグとデータを含むページにリダイレクトします
  3. ユーザーがリダイレクトされます。データを含むフォーム/ページを表示する必要があることがわかりました。フォーム以外の何かを表示します。

しかし、(3)に達したとどのように判断しますか?1つの方法は、リダイレクト時にデータをURLに追加することです。「step = 2」のGETパラメーターを読み取るとします。

func loginPage(w http.ResponseWriter, r *http.Request) {
  if r.URL.Query().Get("step") == "2" {
    // show the form / page described in (3) above.
    // ...
    return
  }

  // suppose your form method is POST
  if r.Method == "POST" {
    if err := r.ParseForm(); err != nil {
      // handle parse error
    }

    // handle form submission normally
    // also somehow store the form submitted value for later use
    // ...
    // ...

    // now redirect to the url, as described in (2)
    http.Redirect(w, r, "/login?step=2")
    return
  }

  // handle the normal form display as described in (1)
  // do your ExecuteTemplate
}

リダイレクトなし

または、リダイレクトせずにこれを行うこともできます。これを2つのステップで考えてください。

  1. ユーザーはログインページを開きます。そして通常のログインフォームを表示します。
  2. ユーザーはログインフォームを送信します。データを含むフォーム/ページを表示する必要があることがわかりました。フォーム以外の何かを表示します。リダイレクトなし
func loginPage(w http.ResponseWriter, r *http.Request) {
  // suppose your form method is POST
  if r.Method == "POST" {
    if err := r.ParseForm(); err != nil {
      // handle parse error
    }

    // handle form submission normally
    // also somehow store the form submitted value for later use
    // ...
    // ...

    // handle the special form / page display as described in (2)
    // do your ExecuteTemplate
    // ...
    // ...

    return
  }

  // handle the normal form display as described in (1)
  // do your ExecuteTemplate
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ページリダイレクト後にsetTimeOut()を実行できますか?

分類Dev

終了ボタンをクリックしたときにwindow.location.hrefを使用して開かれた新しいURLから前のURLにページをリダイレクトするにはどうすればよいですか?

分類Dev

関連するオブジェクトで注釈または集計を実行し、テンプレートでレンダリングしますか?

分類Dev

Jinjaテンプレートを使用してフォームを送信した後、新しいページにリダイレクトするにはどうすればよいですか?

分類Dev

デフォルトのテンプレートを使用して作成されたgithubページは、同じリポジトリからカスタムhtmlファイルをそのままレンダリングすることもできますか?

分類Dev

方法:クリックすると、新しいタブで新しいページを開き、古いページをリダイレクトします

分類Dev

React-context.routerを使用してページをリダイレクトすることはできません

分類Dev

jQueryで選択したテキストをオートコンプリートした新しいWebページにリダイレクトするにはどうすればよいですか?

分類Dev

同じタブで新しいURLにリダイレクトした後に(Chromeで)Javascriptを実行する

分類Dev

Firefoxで、NoScriptまたはuBlock Originを実行しているときに、このページがこのようにレンダリングされるのはなぜですか(noscriptタグのコンテンツは無視されます)。

分類Dev

Webページでクライアントサイドを実行しているスクリプトを変更することは可能ですか?

分類Dev

jspでページをリダイレクトして、新しいページを開きます

分類Dev

GWTで新しいページを開くまたはページをリダイレクトするためのベストプラクティスは何ですか?

分類Dev

beautifulsoupでログインしてリクエストした後、次のページをスクレイプできないのはなぜですか?

分類Dev

FreeMarkerテンプレートの新しいページにリダイレクトするにはどうすればよいですか?

分類Dev

ユーザーが新しいタブでリンクを開き、新しいURLにリダイレクトするかどうかを検出します

分類Dev

レイアウトページの特定のセクションをレンダリングしないことを選択できますか?

分類Dev

Appsスクリプトでフォームを送信した後に新しいHTMLページにリダイレクトする方法

分類Dev

CSSのhiddenプロパティを使用して新しいページにリダイレクトするにはどうすればよいですか?

分類Dev

ページにリダイレクトするボタンをクリックしたときにページが読み込まれるのを待たないようにするにはどうすればよいですか?java

分類Dev

Laravelバージョン5.2のデフォルトの404ページを404のテンプレートページにリダイレクトしたいのですが、どこから何を変更するか

分類Dev

Azureのansibleを介してシークレットの新しいバージョンを上書きまたは作成することは可能ですか?

分類Dev

Ajaxを介してページリダイレクト情報を取得することは可能ですか?

分類Dev

Javascript:新しいページでリンクを開き、スクリプトを実行します

分類Dev

ASP.NETプロジェクトを含む.NETフレームワークソリューションの「新しいプロジェクトシステム」(PackageReference)に移行することは安全/実行可能ですか?

分類Dev

ログアウトをクリックしたときのPHPプロジェクトでは、ホームページにリダイレクトしています。戻るボタンをクリックすると、アカウントページに戻ります。

分類Dev

Amazon S3を使用しているときに、クローラーリクエストを事前にレンダリングされたページにリダイレクトするにはどうすればよいですか?

分類Dev

Primefacesで.pdfをエクスポートした後、他のページにリダイレクトするにはどうすればよいですか?

分類Dev

Ember.JS- [送信]ボタンはクエリを実行し、JSONオブジェクトをテンプレートに返します。クエリをサービスで、モデルとして、またはルートで実行しますか?

Related 関連記事

  1. 1

    ページリダイレクト後にsetTimeOut()を実行できますか?

  2. 2

    終了ボタンをクリックしたときにwindow.location.hrefを使用して開かれた新しいURLから前のURLにページをリダイレクトするにはどうすればよいですか?

  3. 3

    関連するオブジェクトで注釈または集計を実行し、テンプレートでレンダリングしますか?

  4. 4

    Jinjaテンプレートを使用してフォームを送信した後、新しいページにリダイレクトするにはどうすればよいですか?

  5. 5

    デフォルトのテンプレートを使用して作成されたgithubページは、同じリポジトリからカスタムhtmlファイルをそのままレンダリングすることもできますか?

  6. 6

    方法:クリックすると、新しいタブで新しいページを開き、古いページをリダイレクトします

  7. 7

    React-context.routerを使用してページをリダイレクトすることはできません

  8. 8

    jQueryで選択したテキストをオートコンプリートした新しいWebページにリダイレクトするにはどうすればよいですか?

  9. 9

    同じタブで新しいURLにリダイレクトした後に(Chromeで)Javascriptを実行する

  10. 10

    Firefoxで、NoScriptまたはuBlock Originを実行しているときに、このページがこのようにレンダリングされるのはなぜですか(noscriptタグのコンテンツは無視されます)。

  11. 11

    Webページでクライアントサイドを実行しているスクリプトを変更することは可能ですか?

  12. 12

    jspでページをリダイレクトして、新しいページを開きます

  13. 13

    GWTで新しいページを開くまたはページをリダイレクトするためのベストプラクティスは何ですか?

  14. 14

    beautifulsoupでログインしてリクエストした後、次のページをスクレイプできないのはなぜですか?

  15. 15

    FreeMarkerテンプレートの新しいページにリダイレクトするにはどうすればよいですか?

  16. 16

    ユーザーが新しいタブでリンクを開き、新しいURLにリダイレクトするかどうかを検出します

  17. 17

    レイアウトページの特定のセクションをレンダリングしないことを選択できますか?

  18. 18

    Appsスクリプトでフォームを送信した後に新しいHTMLページにリダイレクトする方法

  19. 19

    CSSのhiddenプロパティを使用して新しいページにリダイレクトするにはどうすればよいですか?

  20. 20

    ページにリダイレクトするボタンをクリックしたときにページが読み込まれるのを待たないようにするにはどうすればよいですか?java

  21. 21

    Laravelバージョン5.2のデフォルトの404ページを404のテンプレートページにリダイレクトしたいのですが、どこから何を変更するか

  22. 22

    Azureのansibleを介してシークレットの新しいバージョンを上書きまたは作成することは可能ですか?

  23. 23

    Ajaxを介してページリダイレクト情報を取得することは可能ですか?

  24. 24

    Javascript:新しいページでリンクを開き、スクリプトを実行します

  25. 25

    ASP.NETプロジェクトを含む.NETフレームワークソリューションの「新しいプロジェクトシステム」(PackageReference)に移行することは安全/実行可能ですか?

  26. 26

    ログアウトをクリックしたときのPHPプロジェクトでは、ホームページにリダイレクトしています。戻るボタンをクリックすると、アカウントページに戻ります。

  27. 27

    Amazon S3を使用しているときに、クローラーリクエストを事前にレンダリングされたページにリダイレクトするにはどうすればよいですか?

  28. 28

    Primefacesで.pdfをエクスポートした後、他のページにリダイレクトするにはどうすればよいですか?

  29. 29

    Ember.JS- [送信]ボタンはクエリを実行し、JSONオブジェクトをテンプレートに返します。クエリをサービスで、モデルとして、またはルートで実行しますか?

ホットタグ

アーカイブ