私はnode.js 5.2.0、express 4.2.0および手ごわい1.0.17を持っています。
テキストフィールドと写真を保存する簡単なフォームを作成しました。正常に動作しますが、問題は、データがアップロードされた後、コンソールでPOSTが終了しておらず、まだ保留中であることがわかります。
それを完了するために、これをコードに追加しました
form.on('end', function() {
res.writeHead(200, {'Content-Type': 'text/plain'});
});
ヘッダーだけを送信し、ページには何も送信しません。システムに200 ok
ページに何も印刷せずに応答します。しかし、POSTはまだ保留中です。
何も印刷せずにこれを修正するにはどうすればよいですか?どのような種類のヘッダーを送信する必要がありますか?
ありがとう
更新
私が行った場合
form.on('end', function() {
res.end();
});
POSTは正常に終了しますが、空白のページが表示されます。これはなぜですか?ページを印刷せず、リダイレクトせず、同じページにとどまるだけです。
再度、感謝します
代わりにこれを試してください:
_res.sendStatus(200);
_
または、明示的に定義されたヘッダーを引き続き使用したい場合は、res.end()
をいつか呼び出す必要があると思います。 Formidableの例 でres.end()
がどのように使用されているかを確認できます。
空白のページは、おそらくクライアント側のフォーム処理の結果です。表示されている自動リダイレクトを防止するために、フォームの送信メソッドをオーバーライドし、Expressサービスに手動で投稿することができます。フォームのリダイレクトに関する質問に対する他のいくつかの stackoverflow応答 を次に示します。答えはjQuery固有ですが、基本的な考え方は変わりません。