wake-up-neo.com

Übergeben Sie Anforderungsheader in einem jQuery AJAX GET-Aufruf

Ich versuche, Anforderungsheader in AJAX GET mit jQuery zu übergeben. Im folgenden Block übergibt "data" automatisch die Werte im Querystring. Gibt es eine Möglichkeit, diese Daten in der Anforderung zu übergeben stattdessen Header?

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         success: function() { alert('Success!' + authHeader); }
      });

Das Folgende hat auch nicht funktioniert

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         beforeSend: { signature: authHeader },
         async: false,                    
         type: "GET",
                    success: function() { alert('Success!' + authHeader); }
      });
226
Cranialsurge

Verwenden Sie beforeSend:

$.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},
         success: function() { alert('Success!' + authHeader); }
      });

http://api.jquery.com/jQuery.ajax/

http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method

269
Adam

Ab jQuery 1.5 gibt es einen headers -Hash, den Sie wie folgt übergeben können:

$.ajax({
    url: "/test",
    headers: {"X-Test-Header": "test-value"}
});

Von http://api.jquery.com/jQuery.ajax :

Header (hinzugefügt 1.5): Eine Zuordnung zusätzlicher Header-Schlüssel/Wert-Paare, die zusammen mit der Anfrage gesendet werden sollen. Diese Einstellung wird festgelegt, bevor die beforeSend-Funktion aufgerufen wird. Daher können alle Werte in der Headereinstellung innerhalb der beforeSend-Funktion überschrieben werden.

365
Lukas
$.ajax({
            url: URL,
            type: 'GET',
            dataType: 'json',
            headers: {
                'header1': 'value1',
                'header2': 'value2'
            },
            contentType: 'application/json; charset=utf-8',
            success: function (result) {
               // CallBack(result);
            },
            error: function (error) {
                
            }
        });
37
enthusiast