2009-12-21 1 views
1

Я пытаюсь передать строку методом XmlHttp. Позвольте мне показать вам код:xmlHttp string POST Headers issue

HTML

<div id="greetings"> 
        You are voting out <b style="color: #00b0de;" id=roadiename></b>. Care to explain why?<br/><br/> 
        <textarea name="textarea" id="comment" cols="38" rows="7"></textarea><br> 
        <a href="#" id="postmsg" onclick='getMsg("#comment.val()")' ><img src="images/submit.gif" style="border: none; float:right; padding-top: 10px;padding-right: 10px;"/></a> 
       </div> 

Javscript

function getMsg(msg) 
{ 
    msgBox = msg; 
} 

Core.addEventListener(submit, "click", function(){Slide.send();}); 

функция отправки

send: function() 
    { 
     xmlHttp=GetXmlHttpObject(); 
     if (xmlHttp==null) 
     { 
      alert ("Browser does not support HTTP Request"); 
      return; 
     } 

     var url="user_submit.php", 
     data="vote="+value+"&sid="+Math.random(); 
     xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"); 
     xmlHttp.setRequestHeader("Content-length", data.length); 
     xmlHttp.open("POST",url,true); 
     xmlHttp.send(data); 

     function stateChanged() 
     { 
      if (xmlhttp.readyState==4) 
      { 
      document.getElementById("greetings").innerHTML=xmlhttp.responseText; 
      } 
     } 

     function GetXmlHttpObject() 
     { 
     var objXMLHttp=null; 
     if (window.XMLHttpRequest) 
      { 
      objXMLHttp=new XMLHttpRequest(); 
      } 
     else if (window.ActiveXObject) 
      { 
      objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
     return objXMLHttp; 
     } 
    }, 

после того как все сказано и сделано, это Firebug ошибка показывает:

uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.setRequestHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/roadies/JS/script.js :: anonymous :: line 96" data: no] 

Line 0 
+0

Итак, вы переключились с jQuery на попытку сделать это вручную? – prodigitalson

+0

да. jquery убил меня. ;-) Я опубликовал обновление, как вы просили меня. вы можете взглянуть? – amit

+0

Да, посмотрите, но проблема не была отправка запроса или получение значений из запроса - это была проблема с вашим SQL. – prodigitalson

ответ

1

EDIT:

Вы должны вызвать open; прежде чем вы сможете использовать setRequestHeaders.


Что действительно на линии 96 от http://localhost/roadies/JS/script.js?

+0

xmlHttp.setRequestHeader («Content-type», «application/x-www-form-urlencoded; charset = UTF-8»); – amit

+0

это линия 96. – amit

+0

исключение исчезло. Тем не менее, данные отсутствуют. Я думаю, мне нужен новый файл user_submit.php? или SQL? я схожу с ума. – amit

0

Из W3C spec и Wikipedia заголовки HTTP на самом деле являются «Content-Type» и «Content-Length» (обратите внимание на верхнее второе слово). Меняет ли изменение дело?

+0

сделал это. не помогает. – amit

+0

Дело не имеет значения. Из раздела HTTP 1.1 Spec 4.2 - «Имена полей не зависят от регистра» - http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html – Asaph

+0

@Asaph: Спасибо за разъяснение – Brian