Heim  >  Artikel  >  Web-Frontend  >  Wie sende ich benutzerdefinierte Header in AJAX-POST-Anfragen mit jQuery?

Wie sende ich benutzerdefinierte Header in AJAX-POST-Anfragen mit jQuery?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 11:45:02934Durchsuche

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

Benutzerdefinierte Header in AJAX POST-Anfragen mit jQuery

In mit jQuery initiierten AJAX POST-Anfragen ist es möglich, benutzerdefinierte Header einzuschließen. Der Mechanismus zum Hinzufügen von Headern unterscheidet sich jedoch vom typischen Ansatz.

Wenn Sie Header wie im Beispiel gezeigt angeben:

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

Verständlicherweise würden Sie erwarten, dass die Header wie folgt gesendet werden:

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

Sicherheitsmaßnahmen des Browsers verhindern jedoch, dass die benutzerdefinierten Header-Werte direkt in der ersten Anfrage gesendet werden. Stattdessen werden sie im Header „Access-Control-Request-Headers“ platziert. Dies ist ein Sicherheitsmechanismus, der als Preflight-Anfrage bekannt ist.

Damit die nachfolgende Anfrage die tatsächlichen Header-Werte enthalten kann, muss der Server die erforderlichen CORS-Header (Cross-Origin Resource Sharing) konfigurieren.

Eine Lösung hierfür besteht darin, die Header auf eine andere Art und Weise zu senden, wie im angegebenen Beispielcode gezeigt:

$.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));
  }
});

Dieser Ansatz legt die Anforderungsheaderwerte tatsächlich direkt fest und umgeht den Zugriff. Platzierung von Control-Request-Headern. Es bietet eine Möglichkeit, benutzerdefinierte Header mit der ersten Anfrage zu senden, ohne dass eine Serverkonfiguration erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie sende ich benutzerdefinierte Header in AJAX-POST-Anfragen mit jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn