2012-01-16 3 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

Оператор спрашивал об использовании родного JavaScript, а не jQuery, поэтому зачем им отказываться от своего существующего решения. Я предпочитаю изучать, как работает собственный JavaScript, чтобы вы могли понять компромиссы с использованием jQuery и принимать более разумные решения. И «просто использовать jQuery» в любом случае не объяснит характер заголовков запросов. – gregturn

ответ

14

HTTP является протоколом , Часть этого протокола - это концепция заголовков запросов. Когда происходит xhr, между клиентом и сервером обменивается текст. Заголовки запросов являются частью текста, который клиент отправляет на сервер.

Это способ установки заголовков запросов. Аргументы вы видите

1) заголовок, чтобы установить (в данном случае, Content-тип)
2) значение заголовка. (В данном случае, х-WWW-форм-urlencoded)

See this for more info.

+0

Я знаю, что такое requestHeaders, но я действительно нашел этот пример полезным, когда мне нужно было заголовок запроса плагина в приложении, у которого не было jQuery. – gregturn

0

Он устанавливает HTTP заголовок Content-Type, чтобы содержать URL-адрес закодированные данные, передаваемые из формы.

3

Это именно то, что он говорит. Он установит «заголовок» для следующего XMLHttpRequest.

Заголовок - это почти пара ключей/значений. Он используется для передачи «мета» информации на целевой сервер для текущего запроса. В вашем конкретном случае он используется для указания серверу, какой тип контента используется для этого запроса.

 Смежные вопросы

  • Нет связанных вопросов^_^