2017-05-04 61 views
0

我正在使用Excel js加载项。加载项使用ajax具有多个休息api调用。特别是可以花一些时间来回应(在这种情况下超过10分钟)。它在Excel Online中正常工作 - 收到并显示响应。 Excel for Mac在1分钟后似乎有超时(或其他)影响请求。它返回一个状态码0,我们的服务器正在抛出一个499(客户端取消的请求)。Excel for Mac JS加载项HTTP请求超时

Office for Mac中是否有超时?如果有,是否有办法更改它?向ajax请求添加超时字段不起作用。

回答

0

我觉得这跟Lengthy HTTP calls failing in TaskPane apps on Office for Mac Client是一样的问题。 Office使用的WebKit控件的默认超时时间为60秒。没有办法覆盖从我们结束的默认超时。我曾尝试下面的代码为10分钟,要求工作:

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的回归是现在固定,打破设置超时属性。您将需要最新版本的Safari。此外,jQuery超时属性不起作用,因为他们实际上没有设置WebKit监听的本机XMLHttpRequest :: timeout属性。如果您使用第三方库进行请求,请确保它正确设置XMLHttpRequest超时。

+0

此方法有效。谢谢 :) –