2013-04-23 3 views
0

У меня есть html-страница. После нажатия кнопки отправки запрос отправляется. Моя проблема в том, что заголовки запросов сбиты! Я использую IE, потому что это корпоративные ограничения.HTTP-заголовки стали внизу

<html> 
<head> 
<script language="JavaScript" type="text/javascript"> 

function AjaxRequest(url,callback,method){ 
     var req = new XMLHttpRequest(); 
     req.onreadystatechange= function(){ 
       if(req.readyState != 4) return; 
       callback(req); 
     } 
     req.open(method,url,true); 

     var hdrsArr = document.getElementById('headers').value.split('&'); 
     for (var i = 0; i < hdrsArr.length; i++){ 
      var p = hdrsArr[i].split('='); 
      req.setRequestHeader(p[0],p[1]); 
     } 

     var params = document.getElementById('params').value ; 
     req.send(params); 
} 
function AjaxResponse(res){} 
function MakeRequst(){ 
     alert(''); 
     var url = "http://localhost:8080/test-servlet/TestServlet"; 
     AjaxRequest(url,AjaxResponse,"POST"); 
} 
</script> 
</head> 
<body> 
<input type='text' id="headers" size="200" value='key=value&SOAPAction=requestCreditBureau&Content-Type=text/xml;charset=UTF-8&Accept=text/xml'/><br> 
<input type='text' id="params" size="200" value='<?xml version="1.0" encoding="UTF-8"?><CB_Document appl="00000000000127725161" >[....]</CB_Document>'/><br> 
<input type='button' value='doPost' onClick="MakeRequst();"/><br> 
<div id="response_div"></div> 
</body> 
</html> 

ответ

2

Вам важно, чтобы ваши заголовки не были в порядке?

Если это так, оно не должно соответствовать RFC 2616, все имена полей не учитываются в регистре.

3

По HTTP RFC 2616 имена полей заголовка не чувствительны к регистру. Цитата из него ниже:

полей заголовка HTTP, которые включают в себя общее-заголовок (раздел 4.5), заголовка запроса (раздел 5.3), заголовка отклика (раздел 6.2) и заголовка объекта (раздел 7.1), следует тот же общий формат, что и , который приведен в разделе 3.1 RFC 822 [9]. Каждое поле заголовка состоит из имени, за которым следует двоеточие («:») и значение поля. Почтовые имена не чувствительны к регистру. Значению поля МОЖЕТ предшествовать любое количество LWS, хотя один SP является предпочтительным. Поля заголовка могут быть расширены по нескольким строкам, предшествуя каждой дополнительной строке, по крайней мере, одним SP или HT. Приложения должны следовать «общий вид», где один известен или указанной, при генерации HTTP конструкций, так как могут существовать реализации, которые не принимать что-либо

Это стандартное поведение, и все браузеры бар IE6 соответствовать этому. Таким образом, если это создает для вас проблему, у вас возникнут серьезные проблемы, связанные с изменением поведения объекта XMLHttpRequest (он не изменен для пользователя). Что вы делаете с заголовками?

(Фортуна печенье дня: сделать ваше приложение строги на то, что он посылает, мягок на то, что он получает прекрасно относится к этому Ожидать получить смесь строчных, заглавных, верблюжьего заголовки ... Но согласитесь с RFC на все, что вы отправляете)

+0

Спасибо! Я отправляю заголовки приложениям наших партнеров, которые чувствительны к регистру и ждут параметра SOAPAction (не soapaction). – Dev

+0

Просьба указать их в RFC 2616 и сообщить им, чтобы ** начать следующие стандарты **? :-) Более серьезно, к сожалению, нет никакого способа делать то, что вы хотите на стороне клиента. Вы можете запросить прокси-сервер через локальный скрипт или изменить ресивер. Боюсь, что это ваши два «реальных» варианта. –

+0

(Если вы находитесь в деловых отношениях с этими партнерами, вы можете заставить их волноваться об этом, основываясь на технической некомпетентности, между прочим. Стоит немного сжать их, у вас есть преимущество, и они, вероятно, знают Это.) –

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