javascript - 我在滥用我的 POST 请求吗?我一直收到 400/500(错误的请求)

标签 javascript node.js

我一直在非常努力地为我大学类(class)的期末项目制作网站。我很难理解为什么我的 $.ajax POST 请求将 NULL 发送到我的服务器,而它应该(并且在过去使用)发送我上传的文件的名称。

这是我客户端的代码

$('#upload-file').on('change', function (e) {
        let uploadname = e.target.files[0].name;
        console.log("ICS NAME "+ e.target.files[0].name);

        let icsFlag = false;
        let formData = new FormData();
        formData.append('uploadFile', e.target.files[0].name);
        console.log("FORM:" + formData.uploadname);
        let fileName = e.target.files[0].name;

            if (checkICS(e.target.files[0].name) == true) {
                $.ajax({
                    type: 'POST',            //Request type
                    url: '/upload',  //The server endpoint we are connecting to
                    data: formData,
                    processData: false,
                    contentType: false, 
                    success: function (data) {

(代码不会进入成功或失败部分,我只是得到 400 错误的发布错误)

这是我的服务器端代码(根据我的理解,这对类的每个人都是一样的)


//Respond to POST requests that upload files to uploads/ directory
app.post('/upload', function(req, res) {
  console.log("PLEASE"+req.files);

  if(!req.files) {
    return res.status(400).send('No files were uploaded.');
  }

  let uploadFile = req.files.uploadFile;

  // Use the mv() method to place the file somewhere on your server
  uploadFile.mv('uploads/' + uploadFile.name, function(err) {
    if(err) {
      return res.status(500).send(err);
    }

    res.redirect('/');
  });
});

这是调试面板网络部分中我的/upload 端点的图片(有人告诉我这可能有帮助,与内容类型有关?)debug-upload-endpoint

最佳答案

您没有将实际文件附加到 FormData,只是它的名称。然后你的服务器端 uploader 没有文件对象可以使用

改变

formData.append('uploadFile', e.target.files[0].name);

formData.append('uploadFile', e.target.files[0]);

关于javascript - 我在滥用我的 POST 请求吗?我一直收到 400/500(错误的请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55540659/

相关文章:

javascript - 必须对 JavaScript 进行哪些更改才能使其可编译为二进制文件?

javascript - NVD3图表中的JSON数据格式

javascript - Node.js 使用(JSON 字符串/Arr?)

node.js - express-js 服务器中损坏的 HTTPS SSL (net::ERR_CERT_COMMON_NAME_INVALID)

node.js - 返回数组值的匹配记录并按 Mongoose 中的其他属性分组?

javascript - 使用 Google Cloud PubSub 继续获取 'Error sending test message to Cloud PubSub...'

javascript - Socket.io 将两个客户端添加到房间

javascript - 制作二维数组副本时出现问题

node.js express.js 根路由重定向到//

javascript - 从浏览器调用 Node js 中的方法(使用 Express)