#javascript #c# #post #fetch-api #http-status-code-415
#javascript #c# #Публикация #fetch-api #http-status-code-415
Вопрос:
Я пытаюсь выполнить сообщение fetch() и отправить объект FormData и Int. Я могу сделать одно или другое, но при попытке отправить оба я получаю несвязанные коды состояния 415.
Мои данные post выглядят так:
var payload = {
documents: documents, // which is of type new FormData()
applicationId: applicationId // which is of type int
}
method: "POST",
headers: {
"Authorization": `Bearer ${accessToken}`
},
body: payload
И мой сервер c # выглядит следующим образом:
[HttpPost]
public async Task<JsonResult> UploadDocuments(DocumentUploadVm payload)
ниже приведены заголовки моих запросов:
:authority: localhost:44343
:method: POST
:path: /api/expert/UploadDocuments
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
authorization: Bearer eyJraWQiOiJYNnplamszSy10RjBkMmtWYXpHNE84aFNsUGtSSklhT1ZMeGQ3dC1tQ21FIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULnRuaGFQVGp5RnY4eEhMaGFVM18zLW5rdlVLWV9QUEw5aXJTczI4NHF3c3ciLCJpc3MiOiJodHRwczovL2Rldi04NzAzMTAub2t0YS5jb20vb2F1dGgyL2RlZmF1bHQiLCJhdWQiOiJhcGk6Ly9kZWZhdWx0IiwiaWF0IjoxNjAwNjQ0MzAzLCJleHAiOjE2MDA2NDc5MDMsImNpZCI6IjBvYXAzbmdtNG1BUDBTT1YzNHg2IiwidWlkIjoiMDB1ZGFudnVpUjB6SHp6emk0eDYiLCJzY3AiOlsicHJvZmlsZSIsImdyb3VwcyIsImVtYWlsIiwib3BlbmlkIiwicGhvbmUiXSwic3ViIjoiZGFuaWVsOTVicm93bkBnbWFpbC5jb20ifQ.0ya1CTLuPQcPLyXgph7TQMzwhWtUWrb1QzQx6G2kS4X5fawXZ13XFIztG2TMjCIrTrbGa1WPx-hYmqI7EB2Eilhp0ekQKt85U7Q3Ug5HuQQMhrH8KjvHF5fhElNwf5z1vp4Zgtg1MbF-MPetoV4ttG3SQwxLJ-SFHZFkA-HY2lzoMQS-40V53q5ruVbeXEpX8iwhSXzA7mp53YEaSNWecDJxHoBy6yXszrJrpkQ1wqsp9p5ti1XASVczlLkL-J-IOx6Rf61LfPH9_Q4KR3aZsd_peInJF14YF0lLesmxcnQcvbdMGsUO0PrPtku8wQEeuuQGYn-zZR5eBSDR9ZbzLw
content-length: 15
content-type: text/plain;charset=UTF-8
origin: http://localhost:8080
referer: http://localhost:8080/expert/register
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
Я пытался использовать теги [FromBody], [FromForm], stringifying и все, что между ними, но безрезультатно. Любая помощь будет принята с благодарностью, поскольку я схожу с ума.
Комментарии:
1. [HttpPost] public IActionResult Post([из тела] UploadDocuments(полезная нагрузка DocumentUploadVm)
2. @BryanDellinger что именно вы хотите, чтобы я сделал, потому что этот формат далек. Вы просто говорите мне добавить атрибут [FromBody] ? Если это так, это не работает
3.Отправка FormData и int является нечетной. Почему бы не включить данные
int
в форму?4. Мне кажется, вы, вероятно, хотите установить заголовок Content-Type в запросе на
multipart/form-data
. Заголовки запроса в вопросе показывают, что внешний интерфейс отправляет тело запроса сtext/plain
типом носителя. Ошибка 415, по-видимому, заключается в том, что сервер сообщает вам, что он не поддерживает получениеtext/plain
запросов. В целом, если предполагается использовать FormData, это, похоже, не то, что делает код, показанный в вопросе.