В своем приложении Ruby on Rails я пытался загрузить изображение через клиент POSTMAN REST в формате Base64 . Когда я размещаю изображение, я получаю 406 неприемлемый ответ . Когда я проверил свою базу данных, изображение было там и было успешно сохранено.
В чем причина этой ошибки, есть ли что-то, что мне нужно указать в моем заголовке?
Мой запрос:
URL --- http://localhost:3000/exercises.json
Заголовок:
Content-Type - application/json
Необработанные данные:
{
"exercise": {
"subbodypart_ids": [
"1",
"2"
],
"name": "Exercise14"
},
"image_file_name": "Pressurebar Above.jpg",
"image":"******base64 Format*******"
}
Ответы:
Ваша операция не провалилась.
Ваш бэкэнд-сервис сообщает, что тип ответа, который он возвращает, не указан в заголовке Accept HTTP в вашем клиентском запросе.
Ссылка: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
http://en.wikipedia.org/wiki/HTTP_status_code -> 406
источник
406 происходит, когда сервер не может ответить заголовком accept, указанным в запросе. В вашем случае кажется, что application / json для ответа может быть неприемлемым для сервера.
источник
Вы упомянули, что вы используете Ruby on Rails в качестве бэкэнда. Вы не опубликовали код для соответствующего метода, но я предполагаю, что он выглядит примерно так:
Измените это на:
И это решит вашу проблему. У меня это сработало :)
источник
Вы также можете получить ответ 406, когда недопустимые файлы cookie сохраняются или на них ссылаются в браузере - например, при локальном запуске сервера Rails в режиме Dev.
Если вам довелось запустить два разных проекта на одном и том же порту, браузер может ссылаться на файл cookie из другого сеанса localhost.
Это случилось со мной ... сбило меня с толку на минуту. Посмотрев в браузере> Режим разработчика> Сеть это показала.
источник
«Иногда» это может означать, что на сервере произошла внутренняя ошибка, и он хотел ответить сообщением об ошибке (например, 500 с полезной нагрузкой JSON), но поскольку заголовки запроса не сказали, что он принял JSON, вместо этого он возвращает 406. Пойди разберись. (в данном случае: весеннее загрузочное веб-приложение).
В этом случае ваша операция не удалась. Но сообщение об ошибке было скрыто другим.
источник
В моем случае я добавил:
решил мою проблему полностью.
источник
источник
Если вы используете request.js, вы можете использовать следующее:
источник
В моем случае для API в .NET-Core API настроен на работу с XML (по умолчанию настроен на ответ с JSON), поэтому я добавляю эту аннотацию в мой контроллер:
Спасибо, что поставили меня на путь!
источник