Javascript Express-如何获取序列化表单
我正试图提交一份带有Javascript Express-如何获取序列化表单,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我正试图提交一份带有序列化的表单,但在express中无法获取数据 jquery: function submitSettingsCustom() { $('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event) { alert("works"); event.preventDefault();
序列化的表单,但在express中无法获取数据
jquery:
function submitSettingsCustom()
{
$('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event)
{
alert("works");
event.preventDefault();
var form = $(this).serialize();
$.post("/add-reception-source-customField/"+ JSON.stringify(form), function(data){
});
});
}
路线:
routes.post('/add-reception-source-customField/:form', settings.storeCustomField);
在express中,我试图console.log
数组:
console.log(req.params.form);
返回这个:
"name=Emp1&type=submitReceptionSourceCustomFields"
但如何才能访问每个值
谢谢您应该将表单数据作为正文添加到post请求中,而不是url中
另外,serialize
将生成URL编码的数据,而serializeArray
将生成对象数组
function submitSettingsCustom()
{
$('#reception-source-custom-form, expedition-source-custom-form').on("submit", function(event)
{
alert("works");
event.preventDefault();
var form = $(this).serializeArray();
$.post("/add-reception-source-customField/" , { formData : JSON.stringify(form)}, function(data){
});
});
}
然后在express中使用req.body.formData
routes.post('/add-reception-source-customField/', function(req , res){
console.log(req.body.formData);
});
对于HTTP POST请求,表单数据应该在请求体中提交,而不是在URL中提交
对于jQuery,这可以通过将序列化的表单数据作为第二个参数传递给
在express中,您将需要由Expressjs团队维护的。该中间件将使表单数据在req.body
上可用
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.urlencoded({ extended: true })
app.post('/reception-source', function (req, res) {
console.log(req.body)
/* lines of code */
})
Ok@AmrLabib但它返回我这个“name=Emp1&type=submitReceptionSourceCustomFields”。。如果使用我在答案中添加的路由,会打印什么?“name=Emp1&type=submitReceptionSourceCustomFields”现在如果我使用serializeArray()返回我这个:[{“name”:“name”,“value”:“Emp1”},{“name”:“type”,“value”:“submitReceptionSourceCustomFields”})。有了这个,我现在可以工作了!谢谢,这是服务器上的URL编码字符串。我怎样才能访问它们。
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.urlencoded({ extended: true })
app.post('/reception-source', function (req, res) {
console.log(req.body)
/* lines of code */
})