Как решить проблему перекрестной блокировки чтения (CORB) с лямбда-шлюзом AWS? - PullRequest
0 голосов
/ 21 февраля 2019

Я пытался запустить приложение реагирования на локальном хосте для связи с AWS.Я включил CORS и ОПЦИИ в API.

Chrome теперь выдает эту ошибку

Cross-Origin Read Blocking (CORB) blocked cross-origin response https://xxxxxx.execute-api.us-east-2.amazonaws.com/default/xxxxxx with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.

Я проверил вкладку сети, и вызов параметров проходит иОПЦИИ отправляет это в заголовке ответа

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 и выполнить мою первую лямбда-функцию?

Ответы [ 3 ]

0 голосов
/ 22 февраля 2019

Я должен был понять это.Мне нужно было сделать эти две вещи, чтобы все заработало

1.Включите CORS на шлюзе Amazon API для вашего API

. Это создаст обработчик метода HTTP OPTIONS, и вы сможете разрешить публикации с вашего сайта, установив правильное значение для заголовка access-control-allow-origin.

2,Убедитесь, что ваш метод POST обрабатывает правильные параметры при отправке ответа

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({})
    } 

0 голосов
/ 14 августа 2019

Я исправил это для файлов изображений, обновив метаданные Content-Type в разделе Свойства в S3 - image/jpeg для файлов JPEG и image/png для файлов PNG.

Мое приложение загружает файлы изображений через multer-s3 и, похоже, это применимо Content-Type: 'application/x-www-form-urlencoded'.У него есть параметр contentType с функцией автоматического определения типа содержимого - это должно предотвратить неправильные заголовки и устранить проблему с CORB.

Похоже, что последнее обновление версии Chrome 76 включает прослушивание удаленного файла.Заголовки URL, в частности Content-Type.CORB не был проблемой для других браузеров, таких как Firefox, Safari, а также браузеров внутри приложений, например Instagram.

0 голосов
/ 21 февраля 2019

CORB является защитой, специфичной для Chromium, и не имеет прямого отношения к вашей настройке CORS на стороне AWS.

Возвращает ли ваш сервер заголовки, требуемые для CORB?X-Content-Type-Options: nosniff и правильный Content-Type?

Подробнее о CORB можно узнать на веб-странице Chromium по адресу https://www.chromium.org/Home/chromium-security/corb-for-developers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...