2012-01-16 12 views
9

मैं AJAX सीखते समय इस आदेश पर ठोकर खाई। पुरुष जो ट्यूटोरियल बनाया इस आदेश की व्याख्या नहीं था, क्या आदेश अंदर मापदंडों मतलब है और इसके लिए ... नीचे कोड मैं में इसका इस्तेमाल किया है इस्तेमाल किया क्या है:'xmlhttp.setRequestHeader();' क्या है और किस स्थितियों में इसका उपयोग किया जाता है?

<script type="text/javascript"> 

     function insert(){ 
      if(window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
      }; 

      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
        document.getElementById('message').innerHTML = xmlhttp.responseText; 
       }; 
      }; 

      parameters = 'insert_text='+document.getElementById('insert_text').value; 

      xmlhttp.open('POST','ajax_posting_data.php',true); 
      xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
      xmlhttp.send(parameters); 
     }; 

    </script> 
+4

मैं आपको उस ट्यूटोरियल को फेंकने और jQuery का उपयोग करने का सुझाव दूंगा। आपका कोड न केवल अनावश्यक वैश्विक चर बनाता है बल्कि यह jQuery के साथ भी अधिक जटिल है। इसके अलावा यदि टेक्स्ट फ़ील्ड में '&' वर्ण होता है तो आपकी क्वेरी स्ट्रिंग टूट जाएगी। – ThiefMaster

+3

दस्तावेज़ यहां है: http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method – talnicolas

+6

ओप मूल जावास्क्रिप्ट का उपयोग करने के बारे में पूछ रहा था, jQuery नहीं, तो उन्हें अपने मौजूदा समाधान को स्क्रैप करने के लिए क्यों कहें। मैं सीखता हूं कि देशी जावास्क्रिप्ट कैसे काम करता है ताकि आप jQuery का उपयोग करके ट्रेडऑफ को समझ सकें और अधिक बुद्धिमान निर्णय ले सकें। और "बस jQuery का उपयोग करें" वैसे भी अनुरोध हेडर की प्रकृति की व्याख्या नहीं करेगा। – gregturn

उत्तर

14

HTTP एक प्रोटोकॉल है । उस प्रोटोकॉल का हिस्सा अनुरोध हेडर की अवधारणा है। जब कोई xhr होता है, तो क्लाइंट और सर्वर के बीच पाठ का आदान-प्रदान किया जाता है। अनुरोध हेडर उस पाठ का हिस्सा हैं जो क्लाइंट सर्वर पर भेजता है।

यह अनुरोध हेडर सेट करने का एक तरीका है। तर्क आप देख

1 कर रहे हैं) (इस मामले में स्थापित करने के लिए शीर्ष लेख, सामग्री प्रकार)
2) हैडर मूल्य। (इस मामले में, एक्स www फार्म-urlencoded)

See this for more info.

+0

मुझे पता है कि कौन से अनुरोध हैंडर्स हैं, लेकिन मुझे वास्तव में यह उदाहरण उपयोगी लगता है जब मुझे एक ऐप पर अनुरोध हेडर प्लगइन करने की आवश्यकता होती है जिसमें jQuery नहीं था। – gregturn

0

यह एक रूप से भेजे गए यूआरएल इनकोडिंग डेटा शामिल करने के लिए सामग्री प्रकार HTTP हेडर सेट।

3

यह वही है जो यह कहता है। यह अगले XMLHttpRequest के लिए "हेडर" जानकारी सेट करेगा।

एक शीर्षलेख बहुत महत्वपूर्ण/मूल्य जोड़ी है। यह चालू अनुरोध के लिए लक्ष्य सर्वर पर "मेटा" जानकारी संचारित करने के लिए प्रयोग किया जाता है। आपके विशेष उदाहरण में, यह सर्वर को बताने के लिए प्रयोग किया जाता है कि इस अनुरोध के लिए सामग्री प्रकार का उपयोग किस प्रकार किया जाता है।

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