【问题标题】:ReactJS redux saga fetch apiReactJS redux saga fetch api
【发布时间】:2017-04-08 06:12:53
【问题描述】:

我的 ReactJS 应用程序中有以下代码,但无法在 IE11 浏览器上运行。问题在于 IE11 浏览器上的 fetch 调用。应用程序未对服务器进行 API 调用。

它在 Chrome、Firefox、Safari 和 Edge 上运行良好。谁能建议我还需要执行哪些步骤来支持 IE11?谢谢。

function toQueryString(obj) {
    var parts = [];
    for (var i in obj) {
        if (obj.hasOwnProperty(i)) {
            parts.push(encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]));
        }
    }
    return parts.join("&");
}
var options = new Object;
options.searchoptions = JSON.stringify(searchoptions);
options.limit = limit;
options.offset = offset;
var optionstr = toQueryString(options);

return fetch(`${SERVER_URL}/api/resource/?${optionstr}`, {
  method: 'get',
  dataType: 'json',
  credentials: 'same-origin',
  headers: {
    'Accept': 'application/json',
    'contentType': 'application/json',
    'X-CSRFToken': getCookie('csrftoken')
  }
}).then(response => {
    return response.json();
  }).then(response => {
  var data = JSON.parse(response);
  return data;
}).then(json => {
  return json;
});

【问题讨论】:

    标签: reactjs redux fetch redux-thunk redux-saga


    【解决方案1】:

    IE 11 不支持获取。 但你可以使用 polyfill https://github.com/github/fetch

    你可能还需要一个 promise polyfill,比如 babel-polyfill。 https://babeljs.io/docs/usage/polyfill/

    注意:它不仅仅包含承诺。

    【讨论】:

    • 您好,感谢您的回答。我真的很感谢你的帮助。我有一个问题。我是否需要更改现有代码?它只是安装和添加导入语句还是需要其他任何东西?
    • 只需要安装并导入polyfill即可。无需更改您的代码。因为他们的实现遵循原生获取。
    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 2017-08-27
    • 2017-09-12
    • 2019-02-21
    • 2019-03-01
    • 2016-12-09
    • 2017-09-23
    • 2017-06-07
    相关资源
    最近更新 更多