Почему javascript fetch () возвращает 403, а python-запросы возвращают 200? - PullRequest
0 голосов
/ 07 июля 2019

Используя сгенерированный предварительно подписанный URL-адрес S3, python может выполнить запрос в порядке, однако javascript fetch и XMLHttpRequest возвращают 403 запрещенную ошибку всякий раз, когда в теле указываются данные.Они оба вызываются локально.

Соответствующие статьи среднего уровня, извлекайте документацию, документацию XMLHttpRequest, запрашивает документацию.

python-запросы:

req = requests.put(url, data='placeholder')

JavaScript:

fetch(url, {
    method: 'PUT',
    body: 'placeholder'
}

JavaScript возвращает 200, когда тело не указано, однако возвращает 403, когда тело указано.Python возвращает статус 200 с параметром данных или без него.

1 Ответ

0 голосов
/ 14 июля 2019

По сути, проблема заключалась в том, что выборка Javascript автоматически генерировала заголовок «Content-Type».API-шлюз / лямбда, который назначил этот URL-адрес, не ожидает заголовка «Content-Type», таким образом, JavaScript выдавал ошибку, а Python - нет.Я решил это, указав тип содержимого, допустимый для лямбды, и жестко запрограммировал его на стороне JavaScript.

...