cors预检响应 不能header传值_生存指南之 CORS + API Gateway

本文介绍了跨域资源共享的基本知识,以及如何避免云函数上 Serverless web API 的问题

a6103f96f58bf6c709f992dd6b7286ca.png

构建 Web API 是 Serverless 应用中最流行的用例之一,您能在不增加其他操作开销的情况下,获得简单、可扩展的后端优势。

然而,如果您的网页正在调用后端 API,那么必须处理 跨域资源共享 (CORS) 的问题 ,如果您的网页向与您当前所在域的不同域发出 HTTP 请求,则它必须是 CORS 友好的。

如果您发现以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource

那么本文可能对您有所帮助。

接下来,我们将介绍 Serverless + CORS 的相关信息,目录如下:

  • 预检请求 (Preflight requests)
  • 响应头 (Response headers)
  • CORS with cookie credentials

TL;DR

快速开始 如果您想快速解决 Serverless 应用中的 CORS,可以执行以下操作:

  1. 要处理 preflight requests,在每个 HTTP 端点中添加 enableCORS: true 和 integratedResponse: true 标记:
# serverless.ymlservice: products-serviceprovider:  name: tencent  region: ap-guangzhou  runtime: Nodejs8.9 # Nodejs8.9 or Nodejs6.10plugins:  - serverless-tencent-scffunctions:  getProduct:    handler: handler.getProduct    events:      - apigw:          name: api          parameters:            path: /product            stageName: release            # 修改成你的 API 服务 ID            serviceId: service-xxx            httpMethod: GET            # 开启集成相应,这里必须开启,才能自定义响应 headers            integratedResponse: true,            # 开启 CORS            enableCORS: true  createProduct:    handler: handler.createProduct    events:      - apigw:          name: api          parameters:            path: /product            stageName: release            # 修改成你的 API 服务 ID            service
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值