我是法国人,没有人说英语,所以所有内容都是由谷歌翻译的! 我是 NODE 的初学者。
在我的index.html 文件中,有一个表单,我使用 POST 方法通过 $ .ajax 发送到服务器
在服务器上检索此表单
app.post('/connexion', function (req, res) {
var postData = '';
var pathname = url.parse(req.url).pathname;
console.log('Reçue: '+ pathname +' .');
req.setEncoding('utf8');
req.addListener('data', function(postDataChunk) {
postData += postDataChunk;
console.log('POST reçu ' + postDataChunk +'.');
});
Reçue: /connexion .
POST reçu -----------------------------4511735334446617171533446239
Content-Disposition: form-data; name="pseudo"
Nath
-----------------------------4511735334446617171533446239
Content-Disposition: form-data; name="mdp"
moi
-----------------------------4511735334446617171533446239--
.
但是我没有找到如何检索变量pseudo和mdp的值。
你能帮助我理解并恢复这些值(value)观吗?
感谢您的帮助
最佳答案
“body-parser”可以很好地恢复从表单“正常”发送的变量,但如果我通过 $ .ajax 在 post 方法中发送它们,我将无法检索这些变量 也许我的工作做得不对。 在我的服务器文件上
app.post('/', function(req, res) {
var pseudo = req.body.pseudo;
var mdp = req.body.MdP;
console.log(pseudo);
console.log(mdp);
res.send(true);
});
在 client.js 中
$('#connect_Chat').on('submit', function (event) {
event.preventDefault();
//on récupère le pseudo et le mot de passe
var pseudo = $('#login').val().trim();
var mdp = $('#MdP').val();
var formDataConnectUser = new FormData();
formDataConnectUser.append('pseudo', pseudo);
formDataConnectUser.append('MdP', mdp);
$.ajax({
url: 'https://localhost:8080/',
type: 'post',
data: formDataConnectUser,
processData: false,
contentType: false,
success: function(data) {
if (data === true) {
$('body').removeAttr('id');
$('#text-plus-4').modal('hide');
$('#boutonConnexion').html('<div class="form-group" style="float:right;"><label for="n">Votre pseudo :</label><input type="text" class="pseudoNew" value="'+user.username+'" disabled="disabled"></div>');
$('#envoi_message').removeAttr('disabled');
$('#message').removeAttr('disabled');
$('#message').focus();
} else {
alert('Mauvais pseudo ou Mot de Passe !');
}
}
});
});
在服务器控制台中,变量显示为未定义。
关于node.js - NODE 检索表单变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52021322/