Javascript 即使允许所有来源,cors错误仍然存在*
我在我的网站上有一个帖子请求http://localhost:3000 并向http://localhost:5500 即使在允许所有原点后,也会出现错误。我在这件事上耽搁了几个小时,请帮忙 我得到这个错误Javascript 即使允许所有来源,cors错误仍然存在*,javascript,node.js,cors,Javascript,Node.js,Cors,我在我的网站上有一个帖子请求http://localhost:3000 并向http://localhost:5500 即使在允许所有原点后,也会出现错误。我在这件事上耽搁了几个小时,请帮忙 我得到这个错误 Access to fetch at 'http://localhost:3000/upload' from origin 'http://localhost:5500' has been blocked by CORS policy: Response to preflight reque
Access to fetch at 'http://localhost:3000/upload' from origin 'http://localhost:5500' has been blocked
by CORS policy:
Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
这是我设置标题的地方
app.all("*", (req, res, next) => {
// CORS headers
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
res.header("Access-Control-Allow-Credentials", "true");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Key, Authorization , client-security-token"
);
next();
});
这是我的取回请求
const resp = await fetch("http://localhost:3000/upload", {
method: "POST",
headers: {
Authorization: `Bearer ${localStorage.getItem("access_token")}`,
accept: "application/json",
},
body: formData,
});
const data = await resp.json();
console.log(data);
试试下面
添加了一个条件以检查请求类型是否为OPTIONS
,然后返回状态为200
的响应
app.all("*", (req, res, next) => {
// CORS headers
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
res.header("Access-Control-Allow-Credentials", "true");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Key, Authorization , client-security-token"
);
if (req.method === "OPTIONS") {
return res.status(200).end();
}
next();
});
您使用的是正确的标题,但不是正确的状态,正如它在错误消息“它没有HTTP ok状态”中所述。使用200响应
选项
请求。只需使用带有导入/要求和应用程序的cors模块。使用(cors())
@HereticMonkey如何响应选项??任何例子