2017-05-04 27 views
0

私はExcelのjsアドインで作業しています。アドインには、ajaxを使用して複数の残りのAPI呼び出しがあります。特に応答するのに時間がかかることがあります(この場合、10分以上)。 Excel Onlineで正常に動作しています - 応答が受信され、表示されます。 Excel for Macは、1分後に要求に影響を与えるタイムアウト(または何か)があるようです。ステータスコード0が返され、サーバーが499(クライアントのキャンセル要求)を送出しています。Mac用Excel JSアドインHTTPリクエストのタイムアウト

Mac用のOfficeにタイムアウトがありますか?変更する方法はありますか? ajaxリクエストにタイムアウトフィールドを追加しても機能しません。

答えて

0

私はこれがLengthy HTTP calls failing in TaskPane apps on Office for Mac Clientと同じ質問だと思います。 Officeが使用するWebKitコントロールの既定のタイムアウトは60秒です。私たちの終わりからのデフォルトタイムアウトを無効にする方法はありません。

var xhr = new XMLHttpRequest(); 
var startDate = new Date(); 
xhr.open('POST', url, true); 

xhr.timeout = 800000; // time in milliseconds 

xhr.onload = function() { 
    console.log((new Date() - startDate) + " milliseconds to return."); 
}; 

xhr.ontimeout = function (e) { 
    console.error("error"); 
}; 

xhr.send("data"); 

注タイムアウトプロパティを設定破った今、固定されているWebKitの回帰があったこと:私は10分の要求で動作する次のコードを試してみました。 Safariの最新バージョンが必要です。また、WebKitがリッスンするネイティブのXMLHttpRequest :: timeoutプロパティを実際に設定していないため、jQueryタイムアウトプロパティは機能しませんでした。第三者のライブラリを使用してリクエストを行う場合は、XMLHttpRequestのタイムアウトが適切に設定されていることを確認してください。

+0

このアプローチは機能します。ありがとうございました :) –

関連する問題