【问题标题】:nodejs cross-origin read blocking issue with image resources and canvas图像资源和画布的nodejs跨域读取阻塞问题
【发布时间】:2019-02-09 07:10:54
【问题描述】:

我有一个 nodejs 应用程序,cors 设置是使用 expressjs 中的 cors 包完成的。
我的 cors 设置代码是:

var whitelist = ['https://shajao.com', 'https://www.shajao.com'];
var corsOptions = {
    origin: function (origin, callback) {
        if (whitelist.indexOf(origin) !== -1) {
            callback(null, true)
        } else {
            callback(new Error('Not allowed by CORS'))
        }
    },
    allowedHeaders: ['Content-Type', 'Authorization', 'Content-Length', 'X-Requested-With', 'Accept'],
    methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'],
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
}
app.use(cors(corsOptions));
app.use(express.static(path.join(__dirname, '/public/')));

api 是从一个 Angular 应用程序中调用的,该应用程序可以完美地获得服务器响应。所以 cors 在这里工作得很好。但是图片资源被cors屏蔽了。

如果您想查看问题,请访问网址: https://shajao.com/frames

示例图片网址: https://api.shajao.com/uploads/frames/8cf9006f-0225-461b-a4f2-153737152274.png

【问题讨论】:

    标签: node.js express cross-origin-read-blocking


    【解决方案1】:

    Cross-Origin Read Blocking (CORB) 是一种新的网络平台安全功能。

    参考:https://www.chromium.org/Home/chromium-security/corb-for-developers

    先尝试清除浏览器的缓存。

    如果它不起作用,则必须为响应设置正确的“Content-Type”标头。

    【讨论】:

    • 我添加了它。但不工作。你能解释一下为什么我需要添加 api.shajao.com 吗?因为我从 sajao.com 访问它
    猜你喜欢
    • 2013-06-02
    • 2019-06-21
    • 2019-08-05
    • 1970-01-01
    • 2021-08-07
    • 2019-01-22
    • 2018-11-25
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多