Ktor - 当我开始指定主机时出现 CORS 错误
Posted
技术标签:
【中文标题】Ktor - 当我开始指定主机时出现 CORS 错误【英文标题】:Ktor - Getting CORS errors when I start to specify the host 【发布时间】:2021-12-19 13:41:17 【问题描述】:我正在尝试将帖子发送到我的 api 和我已配置的后端:
install(CORS)
method(HttpMethod.Options)
method(HttpMethod.Post)
header(HttpHeaders.AccessControlAllowOrigin)
header(HttpHeaders.AccessControlAllowHeaders)
header(HttpHeaders.ContentType)
allowNonSimpleContentTypes = true
allowCredentials = true
anyHost()
在前端我有
const res = await fetch(url,
body: JSON.stringify(body),
headers:
"Content-Type": "application/json"
,
method: "POST"
)
当我将 anyHost()
更改为 host("name.io")
时,我开始收到 CORS 错误 - 关于这是为什么的任何想法?
【问题讨论】:
CORS 标头中的主机必须与请求中的来源完全一致。因此,从您的host("name.io")
来看,至少缺少协议。即尝试host("https://name.io")
我试试看,谢谢!
【参考方案1】:
以防万一其他人需要帮助,这里是正确添加主机的方法:
host("publisher.glimpseportal.io", schemes = listOf("https"))
将https放在域前面会导致错误
【讨论】:
以上是关于Ktor - 当我开始指定主机时出现 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
当我根据 DynDNS url 名称而不是 IP 发出 axios 请求时,为啥会出现 CORS 错误?
当我的目标是动态时如何解决 Rest API 的 CORS 错误
当我尝试使用 ktor 和 moshi 在服务器端解码 json 时,我得到“kotlinx/coroutines/io/ByteReadChannel”