2014-06-20 2 views
0

클라이언트 측 :Express.js : 에스 케이프 기호 (POST 요청)

$.post("test=+"); 

서버 측 :

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

가 어떻게 탈출? "&, + etc"와 같은 기호는 인쇄되지 않습니다.

답변

1

가장 먼저 주목할 점은 /test에 게시하려고하지만 해당 URL에 키/값 쌍을 전송하지 않는다는 것입니다. 예를 들어, /test=+을 게시하면 express가 '/ test'가 아닌 '/ test = +'로 요청을 보게되므로/test에서 경로 처리기를 사용하더라도 404가 표시됩니다.

두 번째로, HTML 인코딩이 아닌 URL 인코딩이 필요합니다.

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

가 여기에 내가 명시 서버에있는 코드입니다 :

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

을 그리고 산출 : 이것은 나를 위해 작동

{ test: '+' } 
+0

너무 감사합니다! – owl