使用fetch(没有CORs模块)时修复CORs问题的客户端代码



它已经搜索并包含了典型的后端代码

app.use(function (req, res, next) {
//res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000/storeScore');
res.header('Access-Control-Allow-Origin', '*');
//res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});

但是我仍然得到Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3000/storeScore. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).后面跟着

Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.我的意思是我没有标题res.header('Access-Control-Allow-Origin', '*');吗?

我的前端代码是
function someFunction() {
const sessionHighscore = cumulativeScore;
const options = {
method: 'POST',
headers: {
//'Origin' : 'http://localhost:80',
'Content-Type': 'application/json'
},
body: JSON.stringify(sessionHighscore)
};
fetch('http://localhost:3000/storeScore', options);
}

也许我需要包括一些在客户端头?我想本地html托管在80端口上?

指出:

  • 我正在尝试将数据从本地网站发送到mysql数据库上的localhost:3000
  • 我使用express后端,并尽量不使用cors模块作为解决方案
  • 也有任何资源告诉我如何执行路由而不手动更改本地主机吗?喜欢使用localHost:3000/createTable我必须手动输入这个url,我可以用代码做到这一点吗?
  • 编辑:

  • 查看浏览器中的网络选项卡,我发现OPTIONS请求成功,但POST后缺少'Access-Control-Allow-Origin'标头;我只需要知道如何确保POST也得到标题

在获取请求中添加usecredals: true

请在cors中安装npm包

然后应用中间件

需要

const cors = require("cors");   
中间件代码

app.use(cors())

相关内容

  • 没有找到相关文章

最新更新