首页 > 解决方案 > 如何使用 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');

标签: node.jsnpmcors

解决方案


快递服务器不允许您直接访问文件。如果您希望它直接启用访问文件。你必须这样做

app.use(express.static('public'))

现在您可以直接访问公共文件夹中的文件,如果公共文件夹中有文件 data.json,您可以通过 localhost:3000/data.json 访问它。希望这是您问题的答案


推荐阅读