javascript - 无法在我的快递应用中解决 CORS 政策
问题描述
我不断收到此错误
被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
这是我的快递代码
const express = require('express')
const app = express()
const port = 3001
var redis = require("redis"),
client = redis.createClient();
const {promisify} = require('util')
const getAsync = promisify(client.get).bind(client);
app.get('/jobs', async (req, res) => {
const jobs = await getAsync('github');
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
return res.send(jobs);
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
解决方案
尝试cors
中间件包以在 express 应用程序中启用内核。
安装为生产依赖项。
npm install --save cors
例子:
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3001
var redis = require("redis"),
client = redis.createClient();
const { promisify } = require('util')
const getAsync = promisify(client.get).bind(client);
const allowedOrigins = ["http://localhost:3000"];
app.use(cors({
origin: function (origin, callback) {
if (!origin) return callback(null, true);
if (allowedOrigins.indexOf(origin) === -1) {
var msg = 'The CORS policy for this site does not ' +
'allow access from the specified Origin.';
return callback(new Error(msg), false);
}
return callback(null, true);
}
}));
app.get('/jobs', async (req, res) => {
const jobs = await getAsync('github');
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
return res.send(jobs);
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
推荐阅读
- javascript - 我可以创建多个级别的嵌套对象吗?
- php - 从 php 脚本运行 php 文件
- angular - 如何删除使用 CLI 创建的 Angular 库(ng 生成库)
- c++ - 当算法需要派生类的知识时,将算法与数据解耦
- ios - 根据设备方向旋转视频预览层。Xcode 斯威夫特
- python - Python异步函数中的多个等待
- tensorflow - TensorFlow 模型保存在训练期间以不同方式处理 Vs。部署?
- javascript - 单击时隐藏具有相同名称的其他类的类
- spring - spring-session 会话实现没有获得 CGLIB 增强代理 Bean
- postgresql - 用于存储货币价值的数字与实数数据类型