[英]No 'Access-Control-Allow-Origin' header is present on the requested resource. Node Express Fetch
[英]fetch : o 'Access-Control-Allow-Origin' header is present on the requested resource : react and node
我有這個錯誤我不知道為什么在我的后端節點js中我使用的是 cors
const express = require('express');
const bodyParser = require('body-parser');
const port = 8080;
const cors = require('cors');
require('./database/index')
const usersRouter = require('./routes/userRoutes');
const postRouter = require('./routes/post');
const app = express();
const router = express.Router();
usersRouter.configuration(router);
postRouter.configuration(router);
app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.set('port',port);
app.use('/', router);
app.use(cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
我的方法前端:
signIn = () => {
const data = {login:this.login,password:this.password};
const requestInfo = {
method:'POST',
body: JSON.stringify({data}),
headers: new Headers({
'Content-Type': 'application/json'
}),
};
fetch('http://localhost:8080/login', requestInfo)
.then(response => {
if(response.ok){
return response.json();
}
throw new Error("Login Invalido..")
})
.then(token => {
sessionStorage.setItem('token', JSON.stringify(token.token));
this.props.history.push("/users");
return;
})
.catch(e => {
this.setState({message: e.message})
});
}
錯誤:
Access to fetch at ' http://localhost:8080/login ' from origin ' http://localhost:3000 ' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control -Allow-Origin' header 出現在請求的資源上。 如果不透明的響應滿足您的需求,請將請求的模式設置為“no-cors”以獲取禁用 CORS 的資源。
嘗試在路由器配置之前將 CORS 放入。
const express = require('express');
const bodyParser = require('body-parser');
const port = 8080;
const cors = require('cors');
require('./database/index')
const usersRouter = require('./routes/userRoutes');
const postRouter = require('./routes/post');
const app = express();
const router = express.Router();
app.use(cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.set('port',port);
usersRouter.configuration(router);
postRouter.configuration(router);
app.use('/', router);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.