2014-06-20 91 views
0

客戶端:Express.js:逃逸符號(POST請求)

$.post("test=+"); 

服務器端:

app.post('/test', function(req, res) { 
    console.log(req.body.test); // Print is empty. 
}); 

如何逃生呢?不打印像「&,+等」的符號。

回答

1

我注意到的第一件事是您試圖發佈到/test,但是您沒有向該網址發送鍵/值對。例如,發佈/test=+即使在/ test中有一個路由處理程序,也會給我一個404,因爲express將請求視爲'/ test = +'而不僅僅是'/ test'。

其次,你需要url編碼它,而不是html編碼它。這個工作對我來說:

$.post('/test', 'test=%2B'); 

這裏是我有Express服務器上的代碼:

router.post('/test', function(req, res) { 
    console.log(req.body); 
    res.send('received'); 
}); 

而且它產生:

{ test: '+' } 
+0

太謝謝你了! – owl