在下面的ajax请求中,我向节点服务器发送请求,对名为fileName
的文件进行一些处理。
的Ajax
$.ajax({
type: "POST",
data: {'imageFileName': fileName},
contentType: "json",
url: '/myRoute',
success: function(data){
if(!data){
errorMessage();
}
else{
display(data);
}
}
})
路由器
router.post('/myRoute', function(req, res){
console.log(req.imageFileName) //Undefined
res.end();
})
但是,当我在服务器端记录请求时,我得到一个没有fileName
的巨型对象。鉴于请求名为req
,req.imageFileName
产生未定义。我做错了什么,以至于我无法访问服务器端的fileName
?
答案 0 :(得分:0)
尝试删除数据中的引号。还要交叉检查文件名中的内容。
$.ajax({
type: "POST",
data: {imageFileName: fileName},
contentType: "json",
url: '/myRoute',
success: function(data){
if(!data){
errorMessage();
}
else{
display(data);
}
}
})
答案 1 :(得分:0)
尝试以下方法:
$.ajax({
type: "POST",
data: {'imageFileName': fileName},
url: '/myRoute',
success: function(data){
if(!data){
errorMessage();
}
else{
display(data);
}
}
})
服务器端
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: false
}))
我想知道它的内容类型是否会给你带来麻烦。
答案 2 :(得分:0)
标记位于请求的body
中,由body-parser提供。因此,这很有效。
router.post('/myRoute', function(req, res){
console.log(req.body.imageFileName) //Correct
res.end();
})