我正在开发一些Office Outlook Web加载项,但我没有收到任何响应错误消息。独立于API返回的错误,我在fail
函数中收到以下数据对象:
readyState: 0
responseText: ""
status: 0
statusText: "error"
withCredentials: true
此外,在Visual Studio或浏览器JavaScript控制台控制台中,我得到:
Origin https://localhost:44347 not found in Access-Control-Allow-Origin header.
XMLHttpRequest: Network Error 0x80700013, Could not complete the operation due to error 80700013.
我想指出服务器上的 CORS已启用,并且我从所采取的操作中独立地得到了此错误。当我给出错误的参数或在url中输入拼写错误时,它是相同的。 我还想指出 API是正常的,当我在浏览器(不在办公室)或应用程序中请求使用JS时,这种情况不会发生。我从服务器收到正常的错误消息。
在上面的示例中,测试来自localhost,但在远程Web服务器上托管的情况完全相同。
有关这方面的内容是我通常会收到成功回复(包含代码和消息)。
我想要实现的是在服务器返回时获得错误响应。没有这些信息,很难通知用户他的请求可能有什么问题。
[编辑] 例如,当我在Outlook加载项中执行以下请求并设置假令牌时,我收到上述错误(或者说没有错误):
$.ajax({
type: 'GET',
url: API_URL + "/api/rooms/",
beforeSend: function (xhr) {
$.ajaxSettings.beforeSend(xhr);
xhr.setRequestHeader("Authorization", "Bearer " + token);
},
contentType: "application/json",
});
但是,当我使用Advanced REST Client
执行保存请求时,我得到了403:
"description": "You do not have permission to perform this action.",
"message": "",
"code": "permission-denied",
"status": "fail"
它适用于我的所有Outlook版本。
答案 0 :(得分:0)
问题是办公室加载项是通过HTTP向您的Web应用程序发送请求,并且创建的Web项目(我假设您正在使用Visual Studio中的Office加载项模板)是默认配置为SSL,即HTTPS连接。虽然这是建议用于生产应用程序,但出于调试目的,您只需单击您的Web项目,然后在菜单栏上的visual studio单击视图中 - >然后选择属性窗口 - >然后将SSL启用设置为false。 (见附图)
https://i.stack.imgur.com/Lvybn.png
希望这有帮助!