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

想咨询一个问题 发布了版本后 别名指向这个版本后会有跨域问题 但是如果直接访问latest则没问题

想咨询一个问题 发布了版本后 别名指向这个版本后会有跨域问题 但是如果直接访问latest则没问题 是不是有什么地方需要配置呢?发布的版本触发器是手动添加的

展开
收起
大圣东游 2023-04-21 15:34:58 251 0
3 条回答
写回答
取消 提交回答
  • 阿里云函数计算别名指向某个版本后,如果您使用了API Gateway等网关服务来访问函数计算的API接口,可能会出现跨域问题。这是因为API Gateway会在请求中添加Origin头信息,而函数计算默认情况下不允许跨域访问。

    为解决跨域问题,您可以通过如下两种方式进行配置:

    1. 在函数计算中添加跨域配置:可以在您的函数代码中添加跨域配置,允许特定的Origin头信息进行跨域访问。示例代码如下:
    exports.handler = function(event, context, callback) {
      // 添加跨域头信息
      const headers = {
        'Access-Control-Allow-Origin': 'https://www.example.com',
        'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
        'Access-Control-Allow-Headers': 'Content-Type, Authorization'
      };
      // 处理函数逻辑
      // ...
      // 返回结果
      const response = {
        statusCode: 200,
        headers: headers,
        body: 'Hello World!'
      };
      callback(null, response);
    };
    
    1. 在API Gateway中添加跨域配置:如果您使用了API Gateway来访问函数计算的API接口,可以在API Gateway中添加跨域配置,允许特定的Origin头信息进行跨域访问。具体步骤如下:

    2. 在API Gateway控制台中,选择您的API分组,并进入API详情页面。

    3. 在左侧导航栏中选择“跨域配置”,然后单击“添加跨域规则”按钮。

    4. 在弹出的对话框中,输入允许的Origin头信息、HTTP方法、请求头信息等配置,并单击“确定”按钮保存配置。

    通过以上配置,您就可以允许特定的Origin头信息进行跨域访问了。同时,建议您在使用API Gateway时,使用自定义域名并开启HTTPS,以提高访问安全性。

    2023-04-23 14:28:18
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    如果别名指向的版本与你的应用程序在不同的域中,则会遇到跨域问题。你可以尝试在你的应用程序中添加 CORS 头来解决这个问题。CORS 头是一组 HTTP 响应头,允许服务器表示哪些来源(域、协议或端口)可以访问响应的资源。

    如果你使用的是 AWS Lambda 和 API Gateway,你可以在 API Gateway 中配置 CORS。在 API Gateway 中,你可以为每个资源或方法配置 CORS,以允许特定的来源访问你的 API。你可以在 API Gateway 控制台中找到 CORS 配置选项。

    如果你使用的是其他云服务或自己的服务器,你需要在你的应用程序中添加 CORS 头。你可以在你的 Web 服务器或应用程序中添加 CORS 头,以允许特定的来源访问你的资源。在 Node.js 中,你可以使用 cors 模块来添加 CORS 头。

    另外,如果你使用的是 AWS Lambda,你可以使用 API Gateway 的最新版本别名(例如 latest)来解决跨域问题。API Gateway 会将 latest 别名映射到最新版本的 Lambda 函数。这样,你就可以使用 latest 别名来访问最新版本的 Lambda 函数,而无需担心跨域问题。

    2023-04-21 19:13:56
    赞同 展开评论 打赏
  • 检查一下 latest和有问题的版本的代码和触发器。要确保代码一样,触发器的配置也一样,特别是触发器 Methods 里面选不选 Options 是有区别的。

    详细文档参考 https://help.aliyun.com/document_detail/71229.html 的CORS请求处理部分

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-21 18:22:19
    赞同 展开评论 打赏
问答地址:

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

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