【问题标题】:XMLHttpRequest().Open is not a function in Firefox, but it works in ChromeXMLHttpRequest().Open 在 Firefox 中不是函数,但在 Chrome 中有效
【发布时间】:2016-04-15 12:51:28
【问题描述】:

我有下面的函数,但是当我尝试在 Firefox 中运行它时,我收到错误“xmlhttp.Open 不是函数”。但是,这在 Google Chrome 中不会发生

我是否遗漏了一些从 ActiveXObject 转换的代码? PAGE 参数已设置并适用于 Internet Explorer 中的 ActiveXObject

function broker(PAGE, PARAMARR, STARTPARAM) {
  var postdata = getPostData();
  var ua = navigator.userAgent;
  var msie = ua.indexOf('MSIE ');
  //var xmlhttp =null;
  if (msie != -1) {
    xmlhttp = new ActiveXObject('MSXML2.XMLHTTP');
    xmlhttp.Open('POST', PAGE, false);
    xmlhttp.setRequestHeader(
      'Content-Type',
      'application/x-www-form-urlencoded; charset=UTF-8'
    );
  } else {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.Open('POST', PAGE, false);
    xmlhttp.setRequestHeader(
      'Content-Type',
      'application/x-www-form-urlencoded; charset=UTF-8'
    );
  }
  var paramno, param;
  for (paramno = STARTPARAM; paramno < PARAMARR.length; paramno++) {
    param = PARAMARR[paramno];
    if (param == void 0) param = '';
    if (param === true) param = -1;
    if (param === false) param = 0;
    postdata = postdata + '&Parameter=' + encodeURIComponent(param);
  }
  xmlhttp.setRequestHeader('Content-Length', postdata.length);
  xmlhttp.send(postdata);
  var response = new String(xmlhttp.responseText);
  var brkmsg = getMessage(response);
  return brkmsg;
}

Chrome:Netscape mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/47.0.2526.106 safari/537.36

Firefox: Netscape mozilla/5.0 (windows nt 6.1; wow64; rv:43.0) gecko/20100101 firefox/43.0

IE11:Netscape mozilla/5.0(windows nt 6.1;wow64;trident/7.0;slcc2;.net clr 2.0.50727;.net clr 3.5.30729;.net clr 3.0.30729;媒体中心 pc 6.0;.net4 .0c; .net4.0e; infopath.3; rv:11.0) 像壁虎)

IE8(兼容模式):Mozilla/4.0(兼容;MSIE 7.0;Windows NT 5.2;WOW64;Trident/4.0;.NET CLR 3.0.4506.2152;.NET CLR 2.0.50727;.NET CLR 3.5.30729;. NET4.0C;.NET4.0E;InfoPath.2)

【问题讨论】:

    标签: javascript html firefox xmlhttprequest activexobject


    【解决方案1】:

    好像是笔误。用小写写“open”!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2016-02-19
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多