为了账号安全,请及时绑定邮箱和手机立即绑定

无法从本地主机连接到另一个本地主机

无法从本地主机连接到另一个本地主机

慕神8447489 2021-11-25 19:25:15
我有以下问题:我在 localhost:3001 上运行了一个 api,在 localhost:3000 上有一个 React 应用程序。我可以用邮递员做请求,但是当我使用我的网站时,我收到以下错误:从源“ http://localhost:3000 ”访问“ http://localhost:3001/login ”的XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:无“访问控制” -Allow-Origin' 标头存在于请求的资源上。我做了一些研究,但没有一个奏效。https://www.html5rocks.com/en/tutorials/cors/ 根据网站我需要 xhr.withCredentials = true。但这也行不通。以下是我的应用程序中的一些代码function postAjax(method, apiUrl, data, callback) {  let xhr = new XMLHttpRequest();  xhr.open(method, apiUrl, true);  xhr.setRequestHeader("Content-Type", "application/json");  xhr.withCredentials = true;  xhr.addEventListener("load", function() {    if (xhr.status != 400 && xhr.status != 404) {      callback(JSON.parse(xhr.responseText));    }  });  xhr.send(JSON.stringify(data));}router.post('/login', function(req,rsp){    const {username, password} = req.body;      req.db.get('select * from users where name=?', username, function(_err, user) {        if(!user) {            rsp.status(203).json({error:'User does not exist'})        } else{        let bcryptPassword = user.bcryptPassword;        let level = user.level;        let auth =  jwt.sign({username, level}, SECRET);        if(bcrypt.compareSync(password, bcryptPassword)){            rsp.header('auth', auth);            rsp.status(200).json({token: auth})        } else{            rsp.status(203).json({error: 'Wrong password'});        }    }    });});有谁知道如何解决这个问题以及原因是什么?如果可能的话,有一点示例代码。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

您可以在服务器中使用 cors 模块。https://www.npmjs.com/package/cors npm i cors 安装外部 cors 包


var express = require('express')

var cors = require('cors')

var app = express()


app.use(cors())



查看完整回答
反对 回复 2021-11-25
  • 1 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信