2010-07-15 30 views
183

मैं एक AJAX में अनुरोध हेडर पारित करने के लिए jQuery का उपयोग कर पाने के कोशिश कर रहा हूँ प्राप्त करें। निम्न ब्लॉक में, "डेटा" स्वचालित रूप से क्वेरीस्ट्रिंग में मानों को पास करता है। क्या उस डेटा को अनुरोध हेडर में पास करने का कोई तरीका है?पास अनुरोध हेडर फोन

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

निम्नलिखित काम नहीं किया या तो

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

उत्तर

216

उपयोग 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 जल्दी और आसानी से – Anurag

+0

बहुत बढ़िया! धन्यवाद एडम। – Cranialsurge

+2

मुझे पता है कि यह अब तक पुराना है। लेकिन मैं जोड़ने के लिए है कि वहाँ होना चाहिए चाहता था एक अल्पविराम के बाद: beforeSend: समारोह (XHR) {xhr.setRequestHeader ('एक्स-टेस्ट हैडर', 'परीक्षण मान');} –

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

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

हेडर (1.5 जोड़ा): अतिरिक्त हैडर कुंजी/मान का एक नक्शाjQuery 1.5 के रूप में, एक headers हैश आप में इस प्रकार पारित कर सकते हैं नहीं है अनुरोध के साथ भेजने के लिए जोड़े। यह सेटिंग पहले सेन्ड फ़ंक्शन कहलाए जाने से पहले सेट की गई है; इसलिए, हेडर सेटिंग में किसी भी मान को पहले सेन्ड फ़ंक्शन के भीतर से ओवरराइट किया जा सकता है।

+5

क्या यह वैश्विक रूप से सेट किया जा सकता है? – Trip

+63

हां: '$ .ajaxSetup ({शीर्षलेख: {" एक्स-टेस्ट-हैडर ":" परीक्षण-मूल्य "}})' – Lukas

+5

jQuery दस्तावेज़ $ .ajaxSetup() का उपयोग करने की अनुशंसा नहीं करते हैं (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 का उपयोग करना, सी # एपीआई 2.x, 'HttpRequestMessage r = नए HttpRequestMessage जब हैडर से निकालने की कोशिश कर रहा(); पूर्णांक mylogonID = Convert.ToInt32 (r.Headers.GetValues ​​("logonID")); 'बाहर क्योंकि त्रुटि ** दिया हैडर क्योंकि r.Headers खाली है नहीं मिला था **।। – Jeb50

+0

आप कुछ ऐसा करना चाहते हैं - स्ट्रिंग [] ids = System.Web.HttpContext.Current.Request.Headers ["logonID"]। विभाजन (','); – enthusiast

संबंधित मुद्दे