2010-07-15 29 views
183

JQuery kullanarak bir AJAX GET istek başlıklarını iletmeye çalışıyorum. Aşağıdaki satırda, "veri" otomatik olarak querystring'deki değerleri geçirir. Bu verileri istek başlığında iletmenin bir yolu var mı?Bir jQuery içinde geçiş isteği üstbilgileri AJAX GET çağrısı

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

şu işe yaramadı ya

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

cevap

216

Kullanım 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

+2

+1 hızlı ve kolay – Anurag

+0

Müthiş! Teşekkürler Adam. – Cranialsurge

+2

Bunun şu ana kadar süper olduğunu biliyorum. ama şunu eklemek istedim: virgül: Bundan önce: işlev (xhr) {xhr.setRequestHeader ('X-Test-Header', 'test-value');} –

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

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

başlıkları

(1.5 mL) ilave başlık anahtar/değer bir haritasıjQuery 1.5 itibariyle aşağıdaki gibi de geçebilir bir headers karma orada istek ile birlikte göndermek için çiftleri. Bu ayar, beforeSend işlevi çağrılmadan önce ayarlanır; bu nedenle, headers ayarındaki tüm değerler beforeSend işlevinin içinden üzerine yazılabilir.

+5

Bu global olarak ayarlanabilir mi? – Trip

+63

Evet: '$ .ajaxSetup ({headers: {" X-Test-Üstbilgisi ":" test-value "}})' – Lukas

+5

jQuery docs artık $ .ajaxSetup() kullanılmasını önermiyor (http: // api .jquery.com/jQuery.ajaxSetup /) –

18

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

+0

jQuery 1.7.2, C# API 2.x kullanarak, 'HttpRequestMessage r = yeni HttpRequestMessage(); int mylogonID = Convert.ToInt32 (r.Headers.GetValues ​​("logonID")); 'hata çünkü ** Verilen başlık bulunamadı. ** Çünkü r.Headers boş. – Jeb50

+0

gibi bir şey denemek isteyebilirsiniz - string [] ids = System.Web.HttpContext.Current.Request.Headers ["logonID"]. Split (','); – enthusiast

İlgili konular