我有一个使用 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 不工作的原因是什么?