0

我正在从 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';
       }
   }
}

请帮助我确定代码有什么问题。我的方法不正确吗?提前致谢。

4

0 回答 0