2016-11-24 38 views
1

我在我的ReactJS应用程序中没有在IE11浏览器上工作的代码如下。问题是在IE11浏览器上调用fetch。应用程序不会对服务器进行API调用。ReactJS REDX传奇抓取api

它在Chrome,Firefox,Safari和边缘的伟大工程。任何人都可以请建议我需要执行哪些步骤来支持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; 
}); 

回答

2

取指在IE 11 不支持,但你可以用填充工具https://github.com/github/fetch

您可能还需要一个承诺填充工具像巴别塔,填充工具。 https://babeljs.io/docs/usage/polyfill/

注意:它不仅仅包括承诺更多。

+0

嗨,谢谢你的回答。我非常感谢你的帮助。我有一个问题。我会被要求更改我现有的代码吗?它只是安装和添加导入语句或更多需要? – Kevin

+1

只需要安装并导入polyfill。无需更改您的代码。导致它们的实现遵循本地获取。 –