{"code":"400","error":"invalid","message":"Invalid content. Body must contain a file with the answer"} JavaScript

Bom dia pessoal!

Não consigo enviar meu arquivo, sempre retorna {“code”:“400”,“error”:“invalid”,“message”:“Invalid content. Body must contain a file with the answer”}.

var b = new Blob([{
“resumo_criptografico”: “…”,
“numero_casas”: …,
“cifrado”: “…”,
“decifrado”: “…”,
“token”: “…”
}], { type: “application/json” });
let form_data = new FormData();
form_data.append(‘answer’,b, ‘answer’).
XHR.send(form_data);

Essa é a última forma que usei para recuperar o arquivo. Já tentei recuperar pelo input do formulário, já tentei pelo próprio formulário…

Alguém me ajude? Talvez com a documentação da API!

Vlw!

2 Curtidas

Olá @Coral3b7, tudo bem?

Você deve enviar o resultado como arquivo mesmo com o nome do arquivo como “answer.json” e com o nome do parametro como “answer”.

Tenta enviar dessa maneira e me fala se funcionou ta bom?
Caso não funcione, manda o seu código completo para o meajuda@codenation.com.br que tento te ajudar melhor.

Abraços

Olá, era isso mesmo!

Muito obrigado!

Também estou com o mesmo problema. Criei o arquivo tentei enviar de diversas formas mas a mensagem continua a mesma.

async function enviarArquivo() {
    var answer = document.getElementById('answer').value;
    var arquivo = new File([answer], "answer.json", { type: "application/json" });
    try {
        await fetch('https://api.codenation.dev/v1/challenge/dev-ps/submit-solution?token=meuToken',
            {
                method: 'POST',
                headers: {
                    "Content-Type": "multipart/form-data"
            },
                body: arquivo
        });
    }
    catch (error) {
        console.log(error);
    }
}

obs.: answer é texto;

1 Curtida

Olá @Halibutf42, tudo bem?

O arquivo deve ser submetido utilizando “answer” como chave do parametro na requisição.

Abraços

Consegui. Muito obrigado.