我正在从 Word365 Web 加载项单击自定义功能区栏按钮执行功能。由于此过程涉及多个对话框,因此我在清单文件中使用操作类型“ExecuteFunction”来单击功能区栏按钮。
单击功能区栏按钮“工作流”后,应打开“附加”对话框。该对话框中有一个名为“附加”的按钮。我目前正在尝试向我们的服务器发送“GET”请求并获取响应文本。下面是我的“附加”按钮点击代码。
function GetServerProperties() {
Word.run(function (context) {
const url = 'https://testserver.com/api/v1/properties';
var username = "abcdefg";
var password = "A12#";
var request = new XMLHttpRequest()
request.open("GET", url,[ true, username, password]);
request.send();
request.onload = function () {
alert(`Loaded: ${request.status} ${request.response}`);
};
request.onerror = function () { // only triggers if the request couldn't be made at all
alert(`Network Error`);
};
request.onprogress = function (event) { // triggers periodically
alert(`Received ${event.loaded} of ${event.total}`);
};
});
}
我也在清单文件中添加了域。(可能是我不正确)
<AppDomains>
<AppDomain>https://localhost:44381/</AppDomain>
<AppDomain>https://testserver.com</AppDomain>
</AppDomains>
上面的函数总是返回alert('Network Error');
如果我使用以下request.onreadystatechange
事件,response
则为 null 并且status
为 0。
request.onreadystatechange = function () {
if (request.readyState === 4) {
if (request.status === 200) {
document.body.className = 'ok';
console.log(request.responseText);
} else if (request.response === null && request.status === 0) {
document.body.className = 'error offline';
console.log("The computer appears to be offline.");
} else {
document.body.className = 'error';
}
}
}
请帮助我确定代码有什么问题。我的方法不正确吗?提前致谢。