2012-02-01 16 views
15

मैं AJAX अनुरोधों के लिए एक डीबग टूल बना रहा हूं, और मैं अनुरोध/प्रतिक्रिया शीर्षलेख (फ़ायरबग करता है) को दिखाना चाहता हूं। मैं jqXHR.getAllResponseHeaders का उपयोग कर प्रतिक्रिया शीर्षलेख प्राप्त कर सकता हूं, लेकिन क्या अनुरोध शीर्षलेख के बराबर है?


यदि नहीं, तो मैं जानता हूँ कि मैं कुछ हद तक इसे अपने आप को फिर से संगठित कर सकते हैं:

GET /blah // this part is easy 
Host: servername.com // pretty easy 
Accept: ??? 
Referer: ??? // just use current page url? 
User-Agent: // easy from navigator.userAgent 
X-Requested-With: XMLHttpRequest // hardcoded, $.ajax always does this? 
Accept-Charset: ??? 
Accept-Encoding: ??? 
Accept-Language: ??? 
Connection: ??? 

मैं ज्यादातर के बारे में Accept परवाह है। ऐसा लगता है कि ब्राउजर या कुछ बदल रहा है, क्योंकि मैं $.ajax({dataType:'json'}) सेट कर रहा हूं और फायरबग में मैं Accept application/json, text/javascript, */*; q=0.01 देखता हूं। मैं भेजे जाने वाले वास्तविक हेडर को कैप्चर करने में सक्षम होना चाहता हूं।

Referer के लिए, क्या यह window.url का उपयोग करना सुरक्षित है, या यह कुछ और हो सकता है?

मुझे नहीं पता कि Accept-* या Connection मान कैसे प्राप्त करें।

+0

संभावित डुप्लिकेट [एक XMLHttpRequest में SENT शीर्षलेख प्राप्त करें] (http://stackoverflow.com/questions/7564007/get-sent-headers-in-an-xmlhttprequest) –

उत्तर

-6

आप हेडर तक पहुंचने के लिए सफलता फ़ंक्शन में jqXHR ऑब्जेक्ट का उपयोग कर सकते हैं।

$.ajax({ 
... 
success: function(data, textStatus, jqXHR){ 
console.log(jqXHR); 
... 
} 
}) 
http://api.jquery.com/jQuery.ajax/ से

+3

jq 2.0.3 के रूप में, आप प्राप्त कर सकते हैं * प्रतिक्रिया * शीर्षलेख ('getAllResponseHeaders()' या 'getResponseHeader()' के माध्यम से) लेकिन * अनुरोध * शीर्षलेख के रूप में मैं पूछ रहा था। – gregmac

3

आप उपयोग कर सकते हैं "इस" के रूप में वर्तमान ajax अनुरोध के लिए एक संदर्भ तो संपत्ति प्राप्त "स्वीकार करता है" तो जैसे:

$.ajax({ 
       type: 'POST', 
       dataType: 'JSON', 
       url:'ajax.php', 
       data:my_data_array, 
       success: function(data) { 
        console.log(this.accepts); 
       } 
      }); 
5

लघु जवाब - आश्चर्यजनक रूप से, कोई ।

XMLHttpRequest API के पास भेजने के अनुरोध के शीर्षलेख पुनर्प्राप्त करने का कोई तरीका नहीं है। this question भी देखें।

नया jqHXR object, a superset of the browser's native XMLHttpRequest, दुर्भाग्यवश एक या तो लागू नहीं करता है।

.ajaxComplete() callback एक settings पैरामीटर जो headers कुंजी शामिल होंगे आप इसे सामान्य तरीके से निर्धारित किया है तो मिलता है, लेकिन आप .beforeSend() का उपयोग किया है नहीं करता है, तो setRequestHeader() कॉल करने के लिए।

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