当前位置: 首页 > 知识库问答 >
问题:

获取: o'访问-控制-允许-起源'头存在于请求的资源:反应和节点

万俟宜修
2023-03-14

我有这个错误,我不知道为什么在我的后端节点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})
    });
}

错误:

CORS策略阻止了从来源http://localhost:3000获取http://localhost:8080/login的访问:对起飞前请求的响应不通过权限改造检查:请求的资源上没有访问控制允许来源标头。如果不透明的响应满足您的需求,请将请求的模式设置为no-cors,以在禁用CORS的情况下获取资源。

共有1个答案

松正阳
2023-03-14

尝试将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);
 类似资料:
  • 我试着把数据从React.jslocalhostinsert.php文件。当我提交的形式从reactjs它给我错误的控制台错误是: 访问位于“”的XMLHttpRequesthttp://localhost/reactphpdemo/connect.php“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access

  • 我犯了这个错误 无法加载XMLHttpRequesthttp://domain.com/canvas/include/rs-plugin/js/extensions/revolution.extension.video.min.js.飞行前响应中的访问控制允许标头不允许请求标头字段X-Requested-With。 我的php页面顶部有这两行代码,用于加载这个js文件。 但是问题依然存在,我该怎么

  • 当我试图从另一个域访问rest服务时,我得到了以下错误 无法加载对飞行前请求的响应没有通过访问控制检查:请求的资源上没有“访问-控制-允许-起源”标头。因此,不允许访问源'http://localhost:8080'。 我将服务器端配置为响应跨域调用,这可以用于GET调用,但POST调用会产生错误 谢谢

  • 我试图获取一个API请求,但它正在返回此错误访问XMLHttpRequest at'https://api.deezer.com/chart'从起源'http://localhost:3000'已被CORS策略阻止:没有'访问-控制-允许-起源'标头存在于请求的资源。 密码

  • 我已经创建了两个web应用程序--客户端和服务应用程序。 当客户端和服务应用程序部署在同一个Tomcat实例中时,它们之间的交互很好。 但是当应用程序部署到分开的Tomcat实例(不同的机器)时,当请求发送服务应用程序时,我会得到以下错误。 我的客户端应用程序使用JQuery、HTML5和bootstrap。

  • 以下是我在js控制台中不断出现的错误: CORS策略阻止从来源“http://localhost:3000”在“https://www.myapp.com/api/test”获取:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以便在禁用CORS的情况下获