Swift 本地vapor项目的飞行前请求(选项)失败
我已经使用Vapor框架创建了一个用Swift编写的基本后端。我正在我的机器上本地运行它,因此可以在Swift 本地vapor项目的飞行前请求(选项)失败,swift,vapor,preflight,Swift,Vapor,Preflight,我已经使用Vapor框架创建了一个用Swift编写的基本后端。我正在我的机器上本地运行它,因此可以在http://localhost:8080 对于我正在进行的项目,我也在构建前端,它是使用ReactJS构建的,可以访问http://localhost:3000 使用以下信息在Postman中调用我的后端时,请求工作正常,用户在数据库中创建: 方法 帖子/用户 标题 内容类型:application/json 接受:application/json 身体 { email: "email@
http://localhost:8080
对于我正在进行的项目,我也在构建前端,它是使用ReactJS构建的,可以访问
http://localhost:3000
使用以下信息在Postman中调用我的后端时,请求工作正常,用户在数据库中创建:
方法帖子/用户 标题
内容类型:application/json 接受:application/json 身体
{
email: "email@example.com
password: "12345"
}
现在,当从本地前端用相同的主体和头调用相同的方法时,我的请求立即失败,没有任何响应:
当我检查响应时,我看到所有正文和标题都已正确发送,但没有响应。我在谷歌上搜索了一下,发现Postman(&similor)的行为与浏览器不同,我应该检查该方法是否适用于
OPTIONS
,而不是POST
。我再次调用了该方法:OPTIONS/user
,在《邮递员》中也失败了:
唯一的区别是,在《邮递员》中,我收到了一个回复,正如你在截图中看到的“结果未找到”
我想,这可能与API调用的url中的localhost
有关,因为前端也在localhost上运行。因此,我使用ngrok转发端口8080(后端),然后调用*.ngrok.io
url,而不是localhost:8080
。没有运气。我还尝试使用计算机的网络IP地址,而不是
localhost
。还是不走运
对此我能做些什么?如果您按照以下方式配置后端的CORS设置,它应该可以工作: 蒸汽4
让corscoConfiguration=CORSMiddleware.Configuration(
允许来源:。全部,
允许的方法:[.GET、.POST、.PUT、.OPTIONS、.DELETE、.PATCH],
AllowedHeader:[.accept、.authorization、.contentType、.origin、.xRequestedWith、.userAgent、.accessControlAllowOrigin]
)
app.middleware.use(CORSMiddleware(配置:corsConfiguration))
蒸汽3
让corscoConfiguration=CORSMiddleware.Configuration(
允许来源:。全部,
允许的方法:[.GET、.POST、.PUT、.OPTIONS、.DELETE、.PATCH],
AllowedHeader:[.accept、.authorization、.contentType、.origin、.xRequestedWith、.userAgent、.accessControlAllowOrigin]
)
中间件.使用(CORSMiddleware(配置:corsConfiguration))
服务.注册(中间产品)
通常会发出选项飞行前请求,以检查是否允许跨域请求(COR),它们是否在后端启用?@lazzanie请查看我更新的posttry let corsConfiguration=CORSMiddleware.Configuration(allowedOrigin:.all,allowedMethods:.all,AllowedHeader:.all)