2015-12-14 56 views
5

我有node.js 5.2.0,express 4.2.0和強大的1.0.17。如何在node.js中發送一個200響應

我創建了一個簡單的窗體來保存文本框和照片。它工作正常,但問題是,在數據上傳後,我可以在控制檯中看到POST未完成,它仍處於待處理狀態。

爲了完成它,我已將此添加到我的代碼

form.on('end', function() { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
}); 

我只是想發送頭和沒有在頁面上。我希望系統獲得200 ok響應,而不必在頁面上打印任何內容。但是POST仍在等待中。

如何解決這個問題,而不必打印任何東西?我必須發送什麼樣的標題?

感謝

UPDATE

如果我做

form.on('end', function() { 
    res.end(); 
}); 

的POST正常結束,但我得到一個空白頁。這是爲什麼?我只想上傳一些東西,不打印頁面上的任何內容,不重定向,停留在同一頁面。

再次感謝

回答

11

試試這個:

res.sendStatus(200); 

或者,如果你想繼續使用明確定義的頭,我相信res.end()需要在某些時候被調用。您可以在Formidable example中看到如何使用res.end()

空白頁最有可能是客戶端表單處理的結果。您可能想要覆蓋表單的提交方法,並手動發佈到您的快速服務,以防止您看到的自動重定向。這裏有一些其他stackoverflow responses涉及形式重定向的問題。答案是jQuery特有的,但基本的想法將保持不變。

+0

謝謝。出於某種原因,我得到'res.sendStatus不是函數'。另請檢查我的更新。如果我在'form.on'或'form.parse'中添加'res.end();',我上傳後仍然會出現空白頁。你能告訴我爲什麼以及如何解決這個問題嗎? – slevin

+0

嗯。你確定快遞版嗎?這裏是使用'sendStatus()'的[docs](http://expressjs.com/en/api.html#res.sendStatus)的鏈接。也許試試'.status(200).send('OK')'?我還更新了關於空白頁面的主要答案 - 這一問題很可能是客戶端。 – dvlsg

+0

是的,重定向是默認行爲,僅僅因爲我使用的節點不會改變任何東西。非常感謝,我將爲此部署AJAX。 – slevin

相關問題