【问题标题】:How to create a xmlhttp request?如何创建 xmlhttp 请求?
【发布时间】:2010-12-14 03:57:55
【问题描述】:
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

【问题讨论】:

标签: javascript ajax


【解决方案1】:

这是一个“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 机器(我说的是不支持的东西)有更广泛的兼容性,那么您可以在您的特定情况下使用较旧的机器。

【讨论】:

  • @Mask:实际上它更像是 99%,但我指的是“80/20”规则。这一小段代码(20% 的工作量)解决了绝大多数情况(80%)的问题。事实上,它适用于所有常见的浏览器。如果说运行 IE5 的普通 Windows 95 机器会失败。
【解决方案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 中找到,您可以像我一样在这里学习基础知识。希望这会有所帮助。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 2023-03-07
      相关资源
      最近更新 更多