为什么这个XMLHttpRequest在IE中不起作用?

时间:2018-03-26 21:28:30

标签: javascript ajax internet-explorer cross-browser

我有一个非常简单的XMLHttpRequest进行POST调用。它适用于Chrome和Firefox。但是当我在IE10中尝试它时,我收到了这个错误..

  

SCRIPT5022:InvalidStateError

这是代码。

function _ajaxHelper(options) {
  var xhr = new XMLHttpRequest();
  var opts = _extendHelper({
    withCredentials: false,
    method: 'GET'
  }, options);

  xhr.withCredentials = opts.withCredentials;
  xhr.open(opts.method, opts.url);
  xhr.setRequestHeader('Accept', 'text/plain');
  xhr.send(JSON.stringify(options.data));

  return {
    done: function done(cb) {
      xhr.onreadystatechange = function onStateChange() {
        if (this.readyState === 4) {
          if (this.status >= 200 && this.status < 300) {
            cb(this.responseText);
          } else {
            cb(false);
          }
        }
      };

      xhr.ontimeout = function onTimeout() {
        cb(false);
      };

      xhr.onerror = function onError() {
        cb(false);
      };
    }
  };
}

从我用Google搜索,我设置responseText的原因是我设置_extendHelper,但我没有设置任何内容而是我得到了。所以,不确定那里我做错了什么。

对于function _extendHelper() { var args = arguments; var res = {}; if (args && args[0]) { for (var j in args) { for (var k in args[j]) { res[k] = args[j][k]; } } } return res; } ,这是代码

{{1}}

0 个答案:

没有答案