node.js - 如何使用 cors 模块修复此 cors 错误
问题描述
我安装了 cors 模块并编码如下。
var express = require('express'),
favicon = require('serve-favicon'),
cors = require('cors');
var app = express();
if (app.get('env') === 'development') {
app.locals.pretty = true;
}
app.set('view engine', 'pug');
app.set('views', './views');
app.use(express.static(__dirname + '/public'));
app.use(favicon(__dirname + '/public/img/logo.ico'));
app.use(cors());
app.get('/', (req, res) => {
res.render('view');
});
app.listen(80, () => {
console.log('Server started on port 80');
});
在此之后,我打开服务器并尝试通过此代码访问服务器上的文件。
$.getJSON('https://server.domain/global.json', data => {
console.log(data);
});
但它会出错。
我可以访问 js 文件但不能访问 json 文件。
有什么问题?
[+Edit] 我可以通过以下方式获取 js 文件
$.getScript('~/js/file.js');
但不是通过
$.get('~/js/file.js');
解决方案
快递服务器不允许您直接访问文件。如果您希望它直接启用访问文件。你必须这样做
app.use(express.static('public'))
现在您可以直接访问公共文件夹中的文件,如果公共文件夹中有文件 data.json,您可以通过 localhost:3000/data.json 访问它。希望这是您问题的答案
推荐阅读
- python - 用作库时如何在蝗虫中输出csv?
- mysql - Qt 6 配置选项失败
- swift - 如何从另一个类更新 UICollectionView?
- assembly - 将 xmm 寄存器的低两个 32 位浮点数扩展为整个 xmm 寄存器
- javascript - [JavaScript]为什么进度条 addeventlistener 不起作用?
- node.js - 无法读取未定义 discord.js 的属性“获取”
- html - 为什么我的列表超出表格单元格?
- kivy - 如何在 KivyMD 文本字段中更改提示文本的字体名称?
- javascript - 当我声明一个类字段时,为什么 jshint 会抛出错误?
- c - 用 C 复位 PIC24FJ128GA010