2016-11-24 11 views
1

У меня есть следующий код в моем приложении ReactJS, который не работает в браузере IE11. Проблема заключается в вызове fetch в браузере IE11. Приложение не вызывает вызов API на сервер.ReactJS redux saga 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; 
}); 

ответ

2

выборки не поддерживается в IE 11. , но вы можете использовать polyfill https://github.com/github/fetch

Вы также, возможно, потребуется обещание polyfill как Бабель-polyfill. https://babeljs.io/docs/usage/polyfill/

Примечание: оно включает в себя не только обещание.

+0

Привет, спасибо за ваш ответ. Я действительно ценю твою помощь. У меня есть один вопрос. Должен ли я изменить свой существующий код? Это просто установка и добавление оператора импорта или что-то еще требуется? – Kevin

+1

Просто нужно установить и импортировать полипол. Не нужно менять код. Причина их реализации заключается в том, что происходит нативная выборка. –