开发者社区 > 云原生 > Serverless > 正文

在函数计算中,这个是非写不可吗

你们平台这个Access-Control-Expose-Headers是非写不可吗? 有特殊作用? 以前2.0就存在这个问题, 我一直用cdn去替换的b9835b7bffd498e5cc43996e7865c7c4.png

展开
收起
崔问问 2023-12-01 08:08:34 30 0
4 条回答
写回答
取消 提交回答
  • 在函数计算中,Access-Control-Expose-Headers是一个非必需的响应头字段。它的作用是指定哪些自定义响应头可以被客户端访问。

    当您使用CDN来替换函数计算中的响应时,您可以将自定义响应头添加到CDN的缓存配置中,以便客户端可以访问这些自定义响应头。

    如果您希望在函数计算中允许客户端访问特定的自定义响应头,可以在函数代码中使用以下示例代码来设置Access-Control-Expose-Headers

    import json
    
    def lambda_handler(event, context):
        # 处理请求并生成响应
        response = {
            "statusCode": 200,
            "body": "Hello, World!",
            "headers": {
                "Access-Control-Expose-Headers": "Custom-Header1, Custom-Header2"
            }
        }
        return response
    

    在上面的示例中,Access-Control-Expose-Headers被设置为Custom-Header1, Custom-Header2,表示这两个自定义响应头可以被客户端访问。您可以根据需要修改自定义响应头的名称。

    请注意,Access-Control-Expose-Headers仅适用于跨域资源共享(CORS)请求。如果您的函数不需要处理跨域请求,则可以忽略该字段。

    2023-12-02 17:17:52
    赞同 展开评论 打赏
  • 不是,Access-Control-Expose-Headers:函数计算自定义的一些Headers。

    https://help.aliyun.com/zh/fc/overview-36?spm=a2c4g.11186623.0.i74

    简单请求
    简单请求不会发送预检请求,您可以直接在函数代码中设置Access-Control-Allow-* 开头的Header,完成简单的访问控制。对于简单请求,函数计算支持自定义的Headers包括:Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Request-Method和Access-Control-Max-Age。

    如果您没有自定义Headers,函数计算的Response Headers会默认设置为Request请求中相应的字段:

    Access-Control-Allow-Origin:Request请求的Origin Header。

    Access-Control-Allow-Credentials: true

    Access-Control-Expose-Headers:函数计算自定义的一些Headers。

    2023-12-01 14:12:44
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在函数计算中,Access-Control-Expose-Headers 是一个 HTTP 响应头,用于控制哪些响应头可以被客户端(如 JavaScript)通过 XMLHttpRequest 或 Fetch API 访问。默认情况下,只有少数几个标准的响应头是暴露给客户端的。

    如果你需要让客户端能够访问自定义响应头,那么你需要设置 Access-Control-Expose-Headers 头,并列出你希望暴露的自定义响应头名称。例如:

    Access-Control-Expose-Headers: X-Custom-Header, X-Another-Custom-Header
    

    这表示 X-Custom-HeaderX-Another-Custom-Header 这两个自定义响应头将被暴露给客户端。

    请注意,Access-Control-Expose-Headers 只有在同时设置了 Access-Control-Allow-Origin 且该值不为 * 的情况下才有效。这是因为跨域资源共享(CORS)的安全策略要求服务器必须明确指定哪些自定义响应头可以被公开访问。

    至于是否非写不可,这取决于你的具体需求和应用场景。如果客户端不需要访问任何自定义响应头,或者你已经通过其他方式(如 CDN)解决了这个问题,那么你可能不需要设置 Access-Control-Expose-Headers

    2023-12-01 14:12:43
    赞同 展开评论 打赏
  • 预期是可以自己控制的,稍等你可以看下这个 header 是否去掉了。此回答整理自钉群:阿里函数计算官网客户。

    2023-12-01 09:27:58
    赞同 展开评论 打赏
问答分类:
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载