Amazon web services 如何使用AWS lambda网关解决跨源读取阻塞(CORB)问题?

Amazon web services 如何使用AWS lambda网关解决跨源读取阻塞(CORB)问题?,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我试图让我的react应用程序在本地主机上运行,以便与AWS对话。我已经启用了CORS和API上的选项 Chrome现在给出了这个错误 跨源读取阻塞(CORB)阻塞的跨源响应https://xxxxxx.execute-api.us-east-2.amazonaws.com/default/xxxxxx 使用MIME类型application/json。看见https://www.chromestatus.com/feature/5629709824032768 更多细节。 我检查了网络选项卡

我试图让我的react应用程序在本地主机上运行,以便与AWS对话。我已经启用了CORS和API上的选项

Chrome现在给出了这个错误

跨源读取阻塞(CORB)阻塞的跨源响应https://xxxxxx.execute-api.us-east-2.amazonaws.com/default/xxxxxx 使用MIME类型application/json。看见https://www.chromestatus.com/feature/5629709824032768 更多细节。

我检查了网络选项卡,选项调用正在进行,选项将在响应头中发送此消息

access-control-allow-headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
access-control-allow-methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT
access-control-allow-origin: *

如何解决这个CORB问题并完成我的第一个lambda功能?

CORB是一种特定于铬的保护,与AWS端的CORS设置没有直接关系

您的服务器是否返回CORB所需的头文件
X-Content-Type-Options:nosniff
和正确的
内容类型


您可以在Chromium的网页上了解更多关于CORB的信息,网址是

,我必须弄清楚它。我需要做这两件事来让它工作

1.在Amazon API网关上为您的API启用CORS 这将创建一个选项http方法处理程序,您可以通过为
access control allow origin
标题设置正确的值来允许从您的网站发布文章

2.在发送响应时,确保POST方法处理正在发送正确的参数
我通过更新S3-
image/jpeg
中属性下的
Content-Type
元数据(对于jpeg文件)和
image/png
中的png文件,修复了图像文件的这一问题

我的应用程序通过上传图像文件,它似乎应用了
内容类型:“application/x-www-form-urlencoded”
。它有一个内容类型自动检测功能-这将防止不正确的头并修复CORB问题


最新的Chrome 76版本更新似乎包括监听远程文件URL头,特别是
内容类型
。CORB对于其他浏览器(如Firefox、Safari和Instagram等应用内浏览器)来说不是问题。

嘿,谢谢你的帮助。我自己能够修复它,我在这里发布了我的答案:哦,就是这样!如果其他在客户端使用fetch的用户偶然发现了这一点,请不要忘记将
模式设置为
cors
import json
from botocore.vendored import requests

API_URL = "https://aladdin.mammoth.io/api/v1/user-registrations"

def lambda_handler(event, context):
    if event['httpMethod'] == 'POST':
        data = json.loads(event['body'])
        # YOUR CODE HERE
        return {
            'statusCode': 200,
            'body': json.dumps({}),
            'headers': {
              'access-control-allow-headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
              'access-control-allow-methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',
              'access-control-allow-origin': '*'
            }
        }
    return {
        'statusCode': 200,
        'body': json.dumps({})
    }