CORS 无法与 Fastify 一起正常工作:“无法获取。CORS 网络故障 URL”

问题描述 投票:0回答:0

我有一个使用 fastify 构建的应用程序,但在使用 CORS 时失败了。

我已经安装了插件

fastify-cors
,配置如下:

代码

import fastify from 'fastify'
import cors from '@fastify/cors'

const server = fastify({
  logger: pino({ level: 'info' }),
})

await server.register(cors, { 
    origin: '*',
    methods: ['GET', 'POST', 'HEAD', 'OPTIONS'],
    allowedHeaders: ['Content-Type', 'Authorization', 'Origin', 'X-Requested-With', 'Accept'],
  })    

然而,它不起作用。虽然我可以在任何 API 调用的响应中通过 curl 查看 CORS 设置,但浏览器会失败。

❯ curl -vX 'GET' \
  'http://localhost:5000/api/1/2/test' \
  -H 'accept: application/json'

回复:

< HTTP/1.1 200 OK
< access-control-allow-origin: *
< vary: Origin
< content-type: application/json; charset=utf-8
< content-length: 3
< Date: Sun, 26 Mar 2023 21:46:59 GMT
< Connection: keep-alive
< Keep-Alive: timeout=72

招摇

在Chrome-Browser中使用Swagger显示错误:

获取失败。可能的原因:

CORS 网络故障 URL 方案对于 CORS 必须是“http”或“https” 请求。

不幸的是,Chrome 网络控制台不显示 Swagger-UI 发出的任何请求。所以我无法在这个级别进行调试。

CORS 不工作的原因是什么?

cors swagger-ui fastify
© www.soinside.com 2019 - 2024. All rights reserved.