【问题标题】:Trying to create an xmlhttprequest object but failing [closed]尝试创建 xmlhttprequest 对象但失败 [关闭]
【发布时间】:2017-08-07 15:39:38
【问题描述】:

我正在尝试创建 xml http 请求对象,我找不到哪里出错了,当我尝试警告它打印错误的对象时

var xmlHttpObject = createXmlHttpRequestObject();
alert(xmlHttpObject); // return object is false is my problem 

function createXmlHttpRequestObject() {
  var xmlHttpObject;
  //mozilla browser
  if (window.ActiveXobject) {
    try {
      xmlHttpObject = new ActiveXobject("Microsoft.XMLHTTP");
      alert(xmlHttpObject);
    } catch (e) {
      xmlHttpObject = false;
    }
  } else {
    try {
      xmlHttpObject = XMLHttpRequest();
      alert('test'); //it is not coming in to the block itself
    } catch (e) {
      xmlHttpObject = false;
    }
  }

  if (xmlHttpObject) {
    alert("object created");
  } else {
    alert("object not created");
    return xmlHttpObject;
  }
}

【问题讨论】:

  • 您忘记了new- xmlHttpObject = new XMLHttpRequest(); - 也可以反转测试,因为您很可能没有 IE。代码的第一部分是 IE 忽略您对 // mozilla 的错误注释
  • 我投票结束,因为 这个问题是由无法再复制的问题或简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。
  • 调试 101:浏览器开发者工具控制台(通常是 F12) - 会准确地显示错误的位置和内容
  • d'oh,当然不是...该死的你try/catch :p 你为什么不在catch 块中console.error(e) ;)

标签: javascript php


【解决方案1】:

【讨论】:

  • 除了 fetch 需要 IE 的 shim/polyfill
  • 第二个链接
  • 是的 - noob OP 肯定已经准备好运行 npm 并带来他自己的 ES6 Promise 兼容 polyfill
【解决方案2】:

为了完整起见 - 这里是考虑到脚本的更正版本

window.ActiveXObject difference in IE11

var xmlHttpObject = createXmlHttpRequestObject();
console.log(xmlHttpObject); // shows undefined if not created

function createXmlHttpRequestObject() {
  if (XMLHttpRequest) return new XMLHttpRequest(); // Works in most browsers

  // IE 
  var xmlHttpObject;

  if ((Object.getOwnPropertyDescriptor &&
      Object.getOwnPropertyDescriptor(window, "ActiveXObject")) ||
    "ActiveXObject" in window) {
    try {
      xmlHttpObject = new ActiveXobject("Microsoft.XMLHTTP");
    } catch (e) {
      console.log(e);
    }
    return xmlHttpObject;
  }
}

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2021-09-23
    • 2013-02-20
    • 1970-01-01
    • 2014-10-26
    • 2023-03-10
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多