首页 > 解决方案 > CORS 问题不一致 - 2 个示例(VueJS 和 NodeJs)

问题描述

我有以下轴发布请求

例 1

前端

let data = this.itemsDuplicated;
      console.log("length",data.length)
      await axios({
        method: "post",
        url: `${url}/upDateTasksFromProgress`,
        data: data
      })
        .then(response => {
          console.log(response.data);
        })
        .catch(e => {
          console.log(e);
        });

节点

router.post("/upDateTasksFromProgress", (req, res) => {
  let mysql = "";
  req.body.forEach(el => {
    mysql = `${mysql} update tasks set startDate = '${el.startDate}', endDate = '${el.endDate}', duration = ${el.duration} where id = ${el.id};`
  });
  console.log(mysql)
  pool.getConnection(function (err, connection) {
    if (err) {
      connection.release();
      resizeBy.send("Error with connection");
    }
    connection.query(mysql, function (error, result) {
      if (error) {
        console.log(error);
      } else {
        console.log(result)
        res.json(result);
      }
    });
    connection.release();
  });
});

这工作正常。

我也有:

例 2

前端

let data = [];
      this.tasks.forEach(el => {
        let insert = {
          id: el.id,
          startDate: el.startDate,
          endDate: el.endDate,
          duration: el.duration,
          parentId: el.parentId,
          dependantOn: el.dependantOn,
          fix: el.fix
        };
        data.push(insert);
      });
      console.log(data.length)
      await axios({
        method: "post",
        url: `${url}/postTaskUpdates`,
        data: data
      })
        .then(response => {
          console.log(response.data);
        })
        .catch(e => {
          console.log(e);
        });
    }

后端

router.post("/postTaskUpdates", (req, res) => {
  let mysql = "";
  req.body.forEach(el => {
    mysql = `${mysql} update tasks set startDate = '${el.startDate}', endDate = '${el.endDate}', duration = ${el.duration}, parentId = '${el.parentId}', dependantOn = '${el.dependantOn}' where id = ${el.id};`
  });
  pool.getConnection(function (err, connection) {
    if (err) {
      connection.release();
      resizeBy.send("Error with connection");
    }
    connection.query(mysql, function (error, result) {
      if (error) {
        console.log(error);
        res.json(error)
      } else {
        console.log(result)
        res.json(result);
      }
    });
    connection.release();
  });
});

第二个例子给了我以下错误:

“CORS 策略已阻止从源 'https://www.testing-fe.co.za' 访问 'https://www.testing-be.co.za/postTaskUpdates' 处的 XMLHttpRequest:否 'Access-请求的资源上存在 Control-Allow-Origin 标头。”</p>

两者都在后端完全相同的路由文件中。

唯一的区别是记录的数量。

在第一个示例中,有 22 条记录。

第二个有大约 1300 条记录。

除了记录的数量之外,其他一切都如上所示,在我看来完全一样。

任何建议将不胜感激。

标签: node.jsvue.js

解决方案


推荐阅读