Heim >Web-Frontend >js-Tutorial >Warum werden meine benutzerdefinierten Header in jQuery-AJAX-Anfragen als „Access-Control-Request-Header' angezeigt?

Warum werden meine benutzerdefinierten Header in jQuery-AJAX-Anfragen als „Access-Control-Request-Header' angezeigt?

DDD
DDDOriginal
2024-11-05 01:55:02632Durchsuche

Why Are My Custom Headers Appearing as

Zugriffskontroll-Anfrage-Header: Das Hinzufügen von AJAX-Headern mit jQuery verstehen

In jQuery-AJAX-Anfragen können benutzerdefinierte Header hinzugefügt werden, um die Anfrage zu verbessern Anpassung. Einige Kopfzeilen werden jedoch möglicherweise nicht im erwarteten Format angezeigt. In diesem Artikel soll erläutert werden, warum benutzerdefinierte Header möglicherweise stattdessen als „Access-Control-Request-Header“ angezeigt werden.

Wenn eine Cross-Origin-Anfrage gestellt wird, führt der Browser eine Preflight-Anfrage mithilfe der OPTIONS-Methode durch. Diese Preflight-Anfrage bestimmt, ob die tatsächliche Anfrage zulässig ist. Während dieser Preflight-Anfrage sendet der Browser Header, die angeben, welche HTTP-Methoden und Header die eigentliche Anfrage verwenden wird.

Ein solcher Header ist der Header „Access-Control-Request-Headers“. Es listet die benutzerdefinierten Header auf, die die eigentliche Anfrage enthalten wird. Dies liegt daran, dass der Browser die Erlaubnis vom Server einholen muss, um diese benutzerdefinierten Header zu senden.

Wenn Sie daher einen benutzerdefinierten Header in einer AJAX-POST-Anfrage senden, wird dieser dem „Access-Control-Request-“ hinzugefügt. Header“-Header in der Preflight-OPTIONS-Anfrage. Hierbei handelt es sich um ein Browserverhalten, das ursprungsübergreifende Sicherheitslücken verhindern soll.

Problem mit benutzerdefinierten Headern beheben

Um benutzerdefinierte Header direkt in die eigentliche Anfrage einzubinden, ist es wichtig, Folgendes zu tun Konfigurieren Sie den Server so, dass er Preflight-Anfragen verarbeitet und Berechtigungen für die angegebenen benutzerdefinierten Header erteilt. Diese Konfiguration ist serverspezifisch und erfordert die entsprechende Einstellung der Berechtigungen.

Beispiel mit jQuery

Das bereitgestellte jQuery-Beispiel zeigt, wie ein benutzerdefinierter Header festgelegt wird:

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

Durch Befolgen dieser Richtlinien können Entwickler effektiv benutzerdefinierte Header zu AJAX-Anfragen hinzufügen und so sicherstellen, dass der Browser die Cross-Origin-Sicherheit einhält Protokolle.

Das obige ist der detaillierte Inhalt vonWarum werden meine benutzerdefinierten Header in jQuery-AJAX-Anfragen als „Access-Control-Request-Header' angezeigt?. 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