"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como enviar cabeçalhos personalizados em solicitações AJAX POST com jQuery?

Como enviar cabeçalhos personalizados em solicitações AJAX POST com jQuery?

Publicado em 13/11/2024
Navegar:372

How to Send Custom Headers in AJAX POST Requests with jQuery?

Cabeçalhos personalizados em solicitações AJAX POST com jQuery

Em solicitações AJAX POST iniciadas com jQuery, é possível incluir cabeçalhos personalizados. No entanto, o mecanismo para adicionar cabeçalhos difere da abordagem típica.

Quando você especifica cabeçalhos conforme mostrado no exemplo:

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
}).done(function(data) {
    alert(data);
});

Compreensivelmente, você esperaria que os cabeçalhos fossem enviados como:

My-First-Header: first value
My-Second-Header: second value

No entanto, as medidas de segurança do navegador impedem o envio dos valores do cabeçalho personalizado diretamente na solicitação inicial. Em vez disso, eles são colocados no cabeçalho Access-Control-Request-Headers. Este é um mecanismo de segurança conhecido como solicitação pré-voada.

Para permitir que a solicitação subsequente inclua os valores reais do cabeçalho, o servidor deve configurar os cabeçalhos CORS (Cross-Origin Resource Sharing) necessários.

Uma solução para isso é enviar os cabeçalhos de uma maneira diferente, conforme mostrado no código de exemplo fornecido:

$.ajax({
  type: "POST",
  beforeSend: function(request) {
    request.setRequestHeader("Authority", authorizationToken);
  },
  url: "entities",
  data: "json="   escape(JSON.stringify(createRequestObject)),
  processData: false,
  success: function(msg) {
    $("#results").append("The result ="   StringifyPretty(msg));
  }
});

Na verdade, essa abordagem define os valores do cabeçalho da solicitação diretamente, ignorando o posicionamento Access-Control-Request-Headers. Ele fornece uma maneira de enviar cabeçalhos personalizados com a solicitação inicial sem exigir configuração do servidor.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3