对印前检查请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我最近很难解决CORS错误,我承认我还在学习Express和服务器编程。我试图向数据库提交一个有效载荷,但一旦我在服务器上请求,chrome返回标题错误。我已经尝试了几种修复方法,比如在corsOptions的原点添加通配符,遵循corsx 1 e0f1x的指南。我甚至在我的一个路由文件上添加了一个require cors,但仍然不起作用。
下面是我正在使用的当前代码
index.js
const corsOptions ={
origin:'http://localhost',
credentials:true, //access-control-allow-credentials:true
optionSuccessStatus:200,
}
const app = express();
app.use(cors(corsOptions));
app.use(express.json());
const { StatusCodes, ReasonPhrases } = require("http-status-codes");
app.use(cors());
const server = http.createServer(function (req, res) {
console.log('A request was made: ' + req.url);
res.writeHead(200, {'Content-Type': 'text-plain'});
res.end('Response ended'); // ends the response
});
server.listen(3000, 'localhost');
app.get("/", (req, res) => {
res.status(StatusCodes.OK).json({
title: "Waiting for request...",
status: StatusCodes.OK,
});
});
const ups = require('./routes/ups.js');
app.use("/ups", cors(), ups);
app.all("*", (req, res, next) => {
res.status(StatusCodes.METHOD_NOT_ALLOWED).json({
status: StatusCodes.METHOD_NOT_ALLOWED,
title: ReasonPhrases.METHOD_NOT_ALLOWED,
});
next();
});
ups.js
const cors = require('cors');
const { StatusCodes, ReasonPhrases } = require("http-status-codes");
module.exports = () => {
router.post("/ups", cors(), (req, res) => {
if(
req.body == null ||
req.body.id == null ||
req.body.available == null
) {
console.log("error");
}
var id = req.body.id;
var av = req.body.available;
//Perform Query Ops
var sql = "UPDATE `pc_status` SET available = " + av + " WHERE `id` = " + id + "";
db.query(sql, function(err, result) {
if (err) throw err;
console.log('record inserted');
console.log(req.body.id);
console.log(req.body.available);
//result.redirect(201 ,'/');
});
});
return router;
};
1条答案
按热度按时间mzsu5hc01#
下面是对您代码的一些更新:
index.js
:ups.js
:希望你找到解决办法,如果仍然没有固定让我知道..