除了在表单元素上使用原始 "action" 属性之外,还有其他方法可以解析表单的 POST 请求吗?

Is there a way to parse a form's POST request other than using the original "action" attribute on form elements?

昨晚在摆弄ExpressJS,发现给出一个简单的代码:

app.post('/contact', function(req, res, next) {
  res.send('Congrats you have submitted the form');
});

我能够从服务器端正确响应它,并且实际上发送了一个包含文本 "Congrats you have submitted the form".

的空白文档

然而,当我删除 "action" 属性并尝试使用 javascript 处理它以执行 POST 请求时,例如使用 axios 模块,它不起作用:

axios.post('/contact', { data: { username: <user entered data>, password: { <user entered password> }});

我无法从服务器端(express 内部)获取该数据

app.post('/contact', function(req, res, next) {
  const username = res.data.username;
  const password = res.data.password;
  res.send('Login details: ' + username + ' / ' + password);
});

您的 axios 代码应该如下所示:

axios.post('/contact', {username: 'user', password: 'pass'}).then(response => {
  console.log(response);
});

关于快递码,你可以在这个答案中找到很好的解释: