在尝试将照片上传连接到表单之前,我的网络应用程序运行良好。
现在,看来节点没有收到任何被冻结的表单字段!
HTML
==========
<form method="post" action="#" enctype="multipart/form-data">
<input type="text" name="labelForPhoto" />
<input type="file" name="imgUploader" />
<input type="submit" value="savephoto">
</form>
OR
<form method="post" action="#" enctype="multipart/form-data">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="login">
</form>
JS
================
var formData = new FormData(this);
$.ajax({
type: "post",
data: data,
url: "http://localhost:8080/savephoto", // or /login
xhrFields: {withCredentials: true},
contentType: false,
processData: false,
enctype: 'multipart/form-data',
cache: false,
success: function(data, textStatus, xhr)
{
console.log("success");
},
error: function()
{
console.log("error");
}
});
NODE
============
const express = require("express");
const app = express();
const cors = require('cors');
const port = 8080;
const session = require('express-session');
const router = express.Router();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Credentials", "true");
next();
});
app.use(express.urlencoded());
/* this calls the session function for every request to the end point */
app.use(session({
secret: 'work hard',
resave: true,
saveUninitialized: false,
cookie: {
maxAge: 36000000,
httpOnly: false // <- set httpOnly to false
}
}))
router.get("/savephoto", function(req, res){
Users.all(function(err, results){
console.log(req.body.labelForPhoto); ////// THIS IS ALWAYS UNDEFINED NOW
});
});
router.get("/login", function(req, res){
Users.all(function(err, results){
console.log(req.body.username); ////// THIS IS ALWAYS UNDEFINED NOW
});
});
当我将表单放回没有多部分的内容,并且摆脱了JavaScript IE中的FormData对象时,请删除AJAX调用所需的fileupload内容,然后按预期方式再次发送表单字段。
我试图添加多部分表单内容,以便可以通过ajax将带有标题和其他详细信息的图像发送到服务器。