問題タブ [hunchentoot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
342 参照

common-lisp - ポストパラメータでリダイレクトする方法の周りのhunchentoot

ログインページをコーディングしようとしています。

  • ユーザーはpostメソッドでフォームに入力します

  • フォームに「/auth-」で始まるターゲット URL がある場合、ユーザーは「/login」ページにリダイレクトされます。

  • ユーザーはユーザー名とパスワードなどを入力します

  • 承認が与えられると、すべての情報がデータベースに挿入されます

  • ユーザー名またはパスワードが間違っている場合、すべての情報は再度保持されます

私の目的がまだ明確でない場合、意図はここで説明されているものと大差ありません。

この質問に触発されたこの方法では、「auth-」で始まるすべてのリンクをリダイレクトして、get パラメータとともにログイン ページにリダイレクトできます。

しかし、代わりに投稿パラメーターを使用してリダイレクトするにはどうすればよいですか?

私は次のように考えました:

動作しますが、/login ページには何も表示されません。上記のリンクで示唆されているように、問題は投稿データでリダイレクトできないことだと思います。

私の以前の試みは、非表示の入力に(getパラメーターを使用して)URLを保存し、ユーザーがサインインできるようにしてから、保存されたURLにリダイレクトする関数を作成することでした。これは、この回答の2番目の提案と非常によく似ており、私にとってはうまくいきます。DRYができないだけです。

これは、 around メソッドを使用して、リンクの前に「auth-」を追加するだけで、もっと簡単にできるのではないかと思います。

さらに2つのポイント:

  • この回答が示唆するように投稿するのではなく、フォーム全体をセッションにダンプすることもできると思いますが、Cookie を追跡したくありません。ユーザーがあきらめて、すべての値がセッションに残っている場合はどうなるでしょうか?

  • here のようなhttp ステータス コード 307 に依存することは決してありません。

  • 最後に、私はリスプを学びたいので、restas や caveman のようなフレームワークを試したくありません。この問題は、多くの人によって何度も解決されてきたと思います。過去に、レールを使用していくつかのものを作成しました。物事をあるがままに見るために十分な Ruby を学ぶまで、私はスクリプトキディのようでした。

編集

の代わり(hunchentoot:redirect "/login")に も試し(drakma:http-request "http://127.0.0.1:4242/login" :method :post :parameters (hunchentoot:post-parameters* request))ましたが、「ERROR MESSAGE 200」で失敗しました。ちなみに、この問題にドラクマを使おうとするのがやり過ぎかどうかはわかりません。

最後までお読みいただきありがとうございました。

0 投票する
1 に答える
168 参照

common-lisp - Caveman で複数のクエリ パラメータを取得する方法

私のコードは REPL ではうまく機能しますが、私の Web アプリケーションでは 2 番目の値を取得できません。

例えば(?vehicle=bike&vehicle=car)

私が試したこと

私がする時

  • CLユーザー> (setf |vehicle| '(a b c)
  • CLユーザー> (let ((|vehicle| (multival-plist:getf-all `(:|vehicle| ,|vehicle|) :|vehicle|))) (print (alexandria:flatten (list :vehicle |vehicle|))))

これにより、目的の出力が得られます(:VEHICLE A B C)

しかし、フォームを送信すると

私のルートへ

実際には結果を djula テンプレートにレンダリングしますが、テストのためformatに代わりに使用します。

そのうちの 2 つだけ(VEHICLE (bike))がチェックされた結果、

  • 自転車

私が期待すること

出力は

  • 自転車

アプリで 16 個のチェックボックスを使用します。これにより、リンクが非常に長くなり、リンクを短くするよう提案されます。

PS: Hunchentoot サーバーと Caveman2 Web フレームワークを使用しています。

0 投票する
0 に答える
64 参照

common-lisp - Hunchentoot 関数のタイムアウト?

大きなファイルのアップロードを受け入れるアプリを書き始めようとしています。アップロードに 'X' 秒以上かかる場合に、Hunchentoot がタイムアウトしないようにしたいと考えています。クイックドキュメントを検索したところ、タイムアウトの次のインスタンスが見つかりました。

  • DEFAULT-CONNECTION-TIMEOUT / ソケット タイムアウトのようです
  • READ-TIMEOUT / 探しているのかもしれませんが、よくわかりません。
  • WRITE-TIMEOUT / これが私が望むものだとは思わない

READ-TIMEOUT は開始する場所ですか、それとも何か不足していますか?

ありがとう!