它已经搜索并包含了典型的后端代码
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())