如何在 Nuxt 静态文件响应上添加标头?

Yit*_*ade 2 javascript frontend cors vue.js nuxt.js

我在静态文件夹中有一个 json 文件,我正在尝试从另一个网站访问它,但是我遇到了 CORS 问题。

如何在静态文件响应中添加标头(如 Access-Control-Allow-Origin)?

我试过这个https://github.com/nuxt/nuxt.js/issues/2554#issuecomment-363795301,但不适用于静态文件。

module.exports = function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Headers', '*');
    res.setHeader('Access-Control-Allow-Methods', '*');
    next()
}
Run Code Online (Sandbox Code Playgroud)

小智 9

Nuxt 有一个内置渲染属性选项,您可以在 nuxt.config.js 文件中使用它。

如果要为静态文件添加访问控制标头,只需使用该setHeaders功能。

请参阅https://nuxtjs.org/api/configuration-render#static

在后台 Nuxt 使用serve-static包(也用于其他选项)。

例子:

render: {
   static: {
     setHeaders(res) {
       res.setHeader('X-Frame-Options', 'ALLOWALL')
       res.setHeader('Access-Control-Allow-Origin', '*')
       res.setHeader('Access-Control-Allow-Methods', 'GET')
       res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
  }
}
Run Code Online (Sandbox Code Playgroud)