415 при получении POST с составными данными FormData - PullRequest
1 голос
/ 17 марта 2020

Я перебираю бесчисленные сообщения, и я просто озадачен этим, что должно быть так просто.

let formData = new FormData();
formData.append('message', payload.message);
formData.append('attachment', this.state.attachment);
let options = {
    method: 'post',
    body: formData
}
fetch('api/contact', options);

Тогда я получаю слишком знакомую ошибку 415:

Request URL: https://localhost:44348/api/contact
Request Method: POST
Status Code: 415 
Remote Address: [::1]:44348
Referrer Policy: no-referrer-when-downgrade

Я не знаю, чтобы установить мой Content-Type и даже заголовки, и все выглядит нормально, включая границу:

Заголовки запроса

:authority: localhost:44348
:method: POST
:path: /api/contact
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
content-length: 10269
content-type: multipart/form-data; boundary=----WebKitFormBoundary5iTqTV6AaKla3BMA
origin: https://localhost:44348
pragma: no-cache
referer: https://localhost:44348/contact
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36

Данные формы

message: asdasd
attachment: (binary)

Это тот же API, который я ранее использовал для старого сайта jQuery, и он работал нормально. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 19 марта 2020
let options = {
    method: 'post',
    body: formData
}

Точка с запятой ; после body в объявлении JSON может вызвать ошибки при запуске. Это может быть проблемой, пожалуйста, проверьте это. Когда вы прикрепляете вложение, проверьте, правильно ли оно преобразовано в двоичный формат. Надеюсь, поможет!! Удачного кодирования !!

0 голосов
/ 27 марта 2020

Старая версия Core не учитывала регистр при разборе входящих моделей, более новая версия.

...