No meu aplicativo Ruby on Rails, tentei fazer upload de uma imagem através do cliente POSTMAN REST no formato Base64 . Quando POST a imagem, recebo uma resposta 406 não aceitável . Quando verifiquei meu banco de dados, a imagem estava lá e foi salva com sucesso.
Qual é o motivo desse erro, há algo que preciso especificar no meu cabeçalho?
Meu pedido:
URL --- http://localhost:3000/exercises.json
Cabeçalho:
Content-Type - application/json
Dados não tratados:
{
"exercise": {
"subbodypart_ids": [
"1",
"2"
],
"name": "Exercise14"
},
"image_file_name": "Pressurebar Above.jpg",
"image":"******base64 Format*******"
}
Respostas:
Sua operação não falhou.
Seu serviço de back-end está dizendo que o tipo de resposta que está retornando não é fornecido no cabeçalho Aceitar HTTP na sua solicitação do Cliente.
Ref: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
http://en.wikipedia.org/wiki/HTTP_status_code -> 406
fonte
406 acontece quando o servidor não pode responder com o cabeçalho de aceitação especificado na solicitação. No seu caso, parece que application / json para a resposta pode não ser aceitável para o servidor.
fonte
Você mencionou que está usando o Ruby on Rails como back-end. Você não publicou o código para o método relevante, mas meu palpite é que ele se parece com isso:
Altere para:
E isso resolverá o seu problema. Funcionou para mim :)
fonte
Você também pode receber uma resposta 406 quando cookies inválidos são armazenados ou referenciados no navegador - por exemplo, ao executar um servidor Rails no modo Dev localmente.
Se você executou dois projetos diferentes na mesma porta, o navegador pode fazer referência a um cookie de uma sessão localhost diferente.
Isso aconteceu comigo ... me tropeçou por um minuto. Procurando no navegador> Modo de desenvolvedor> Rede mostrou.
fonte
"Às vezes", isso pode significar que o servidor teve um erro interno e queria responder com uma mensagem de erro (ex: 500 com carga JSON), mas como os cabeçalhos da solicitação não disseram que aceitavam JSON, ele retornava um 406. Vai saber. (neste caso: webapp de inicialização por mola).
Nesse caso, sua operação falhou. Mas a mensagem de falha foi obscurecida por outra.
fonte
No meu caso, eu adicionei:
resolveu meu problema completamente.
fonte
fonte
Se você estiver usando 'request.js', poderá usar o seguinte:
fonte
No meu caso para uma API no .NET-Core, a API está configurada para funcionar com XML (por padrão, é definida como resposta com JSON), portanto, adiciono esta anotação no meu Controller:
Obrigado por me colocar no caminho!
fonte