2016-11-24 8 views
1

IE11ブラウザで動作していないReactJSアプリケーションに次のコードがあります。問題は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 ではサポートされていませんが、あなたはまた、バベル、ポリフィルのような約束のポリフィルが必要になる場合がありますポリフィルhttps://github.com/github/fetch

を使用することができますフェッチ。 https://babeljs.io/docs/usage/polyfill/

注意:それは単なる約束以上のものを含んでいます。

+0

こんにちは、お返事ありがとうございます。私は本当にあなたの助けに感謝します。一つの質問があります。既存のコードを変更する必要がありますか?インポート・ステートメントをインストールして追加するだけですか、それ以上のものは必要ですか? – Kevin

+1

ポリフィルをインストールしてインポートするだけです。コードを変更する必要はありません。その実装がネイティブフェッチに従っているためです。 –