繁体   English   中英

为什么我的网站上突然出现“没有 'Access-Control-Allow-Origin' header is present”错误?

[英]Why am I suddenly getting a “No 'Access-Control-Allow-Origin' header is present” error on my website?

我在我的 DigitalOcean 服务器中创建服务器块,以便我可以从同一个 droplet 托管两个网站,我想我让它工作了,但网站坏了。 我在 VSCode 中打开我的代码并使用 npm start 和 nodemon 运行它,当我尝试从 Pokeapi 中提取数据时出现此错误:

Access to XMLHttpRequest at ' https://pokeapi.co/api/v2/pokemon/charizard/ ' from origin ' http://localhost:3000 ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header 存在于请求的资源上。

这与我在实时网站上遇到的错误相同。 我花了最后几个小时试图弄清楚我能做什么无济于事。 我想知道这是 Pokeapi 的问题还是我的问题,因为我用手机访问了该网站,它运行良好。 我真的很沮丧,因为我需要找到一份工作,而且我认为没有人愿意在网站损坏的情况下雇用我。 如果有人想查看我的部分代码,我会展示它。 任何帮助深表感谢。

在 Kasey Chang 的帮助下,我找到了解决办法。 这是我的服务器文件顶部在修复之前的样子:

require('dotenv').config();
const {CONNECTION_STRING, SESSION_SECRET, SERVER_PORT} = process.env;
const express = require('express');
const app = express();
app.use(express.json());
const massive = require('massive');
const session = require('express-session');

我创建了自己的代理,所以现在看起来像这样:

require('dotenv').config();
const {CONNECTION_STRING, SESSION_SECRET, SERVER_PORT} = process.env;
const express = require('express');
const app = express();

app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    next();
});

app.use(express.json());
const massive = require('massive');
const session = require('express-session');

现在我的网站又可以工作了。 我希望这可以帮助遇到同样问题的任何人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM