次のコードを使用して、Microsoft Graph APIを使用してOneDriveに大きなファイル(62MB未満)をアップロードしています。Microsoft Graph APIへのXMLHttpRequestからIE 11への打ち切り
let req = new XMLHttpRequest();
req.open("PUT", url, true);
req.setRequestHeader("Authorization", "Bearer " + this.authProvider.tokens.graph);
req.setRequestHeader("Content-Length", file.size.toString());
req.setRequestHeader("Content-Range", "bytes 0-" + (file.size - 1).toString() + "/" + file.size.toString());
req.upload.onprogress = (e) => {
let progress = Math.floor(e.loaded/e.total * 100);
console.log(progress);
};
req.upload.onerror = (e: any) => {
console.log("error");
};
req.onload = (e) => {
console.log("done");
};
req.send(buffer);
これはクロム(現在までの最新版)から罰金を通過しているが、セッションを作成した後、アップロードはcreate session要求から返されたURLに失敗しています。 IE 11のコンソールでエラーSCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
が表示され、ネットワークタブで要求ステータスがaborted
で、イニシエータがCORS Preflight
リクエストであることがわかります。他のテストによると私はエラーがreq.open("PUT", url, true);
行に由来すると思う。実際
-Update-
そのをChromeでうまく通じ取得します実際に失敗して返されたURLへのプリフライトCORS(OPTIONS)要求。
いいえ、問題は解決しません。 – lbrahim