Amazon web services 如何使用AWS lambda网关解决跨源读取阻塞(CORB)问题?
我试图让我的react应用程序在本地主机上运行,以便与AWS对话。我已经启用了CORS和API上的选项 Chrome现在给出了这个错误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 更多细节。 我检查了网络选项卡
跨源读取阻塞(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({})
}