2009-11-07 2 views
1
var url="display.php?vote="+grade; 
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true) 
xmlHttp.send(null) 
} 
} 

function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
{ 
document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
} 
} 

Этот фрагмент кода не может отправить запрос. Как правильно создать xmlHttp?Как создать запрос xmlhttp?

+0

Точный дубликат: http://stackoverflow.com/questions/1620305/send-an-http-request –

+0

Retagged '' js' к javascript', как это имеет гораздо более высокий охват. – BalusC

ответ

0

Это решение "80%".

function GetXHR() 
{ 
    try 
    { 
    if (window.XmlHTTPRequest) 
     xmlHttp = new XmlHTTPRequest() 
    else 
     xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0") 
    } 
    catch(e) { } 
} 

var xmlHttp = GetXHR() 
if (xmlHttp) 
{ 
    // Proceed with xmlHttp usage. 
} 

Редактировать

Примечание Я, как правило, чтобы избежать старых ProgID «Microsoft.XMLHTTP» в пользу того, я использовал, потому что позже ProgID имеет более предсказуемое поведение и даже чуть более безопасный. Однако, если вы хотите, чтобы более широкая совместимость с действительно старыми машинами Windows (я говорю из-за поддержки), вы можете использовать более старую в своем конкретном случае.

+0

Что такое 100% -ное решение? – Mask

+0

Использование 'jQuery.ajax()'. – BalusC

+0

@ Маска: На самом деле это больше похоже на 99%, но я ссылаюсь на правило «80/20». Этот небольшой кусок кода (20% усилий) решает проблему в подавляющем большинстве случаев (80%). Фактически он будет работать на всех распространенных браузерах. Это может не сказаться на ванильном компьютере под управлением Windows 95 с IE5. – AnthonyWJones

0

Относительный URL-адрес может быть неправильным, в отличие от текущего контекста. Трудно сказать, основываясь на полученной информации. Для получения более подробной информации вам необходимо изучить статус XHR.

По крайней мере, w3schools.com имеет хороший базовый учебник по Ajax. Поняв, как Ajax/Javascript работает под капотом, я бы рекомендовал вам продолжить с jQuery, он берет на себя всю неприятную работу, связанную с браузером.

Удачи.

2
<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP!"); 
    } 
} 
</script> 

этот кусок кода доступен в link text вы можете узнать основы здесь, как я сделал. надеюсь это поможет.

0

var xmlHttp=new(window.ActiveXObject?ActiveXObject:XMLHttpRequest)('Microsoft.XMLHTTP');

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