【问题标题】:How do I use the AutodiscoverUrl method?如何使用 AutodiscoverUrl 方法?
【发布时间】:2019-06-15 04:43:14
【问题描述】:

我正在尝试使用 ExchangeService.AutodiscoverUrl() 方法,但它不起作用。它似乎没有获取 URL,导致来自 ExchangeCredentials.GetUriWithoutSuffix 的错误“无法读取未定义的属性 'AbsoluteUri'”。

这是我的代码('c' 只是一个 json 对象):

service = new EwsJS.ExchangeService(EwsJS.ExchangeVersion.Exchange2016);
service.Credentials = new EwsJS.ExchangeCredentials(c.UserName, c.Password);
service.AutodiscoverUrl("email@domain.com", RedirectCallback);

// I'm forcing the accepted redirect here.
function RedirectCallback(url) {
        return true;
    }

【问题讨论】:

  • 我想我找到了问题所在。在自动发现 GET 调用期间未将授权标头添加到 xhrOptions,这会导致结果为空,而不是有效的端点 URL。深入研究代码发现它正在尝试查找“... svc”代替。这是一个错误吗?是否有强制自动发现始终使用 Soap Http 而不是 Legacy Http 端点的解决方法?
  • 由于某种原因,凭据未传递给自动发现服务,这导致未处理的 401 错误。考虑到我发现的这行代码,我猜这是问题的一部分:“//todo - 优化代码,需要在失败的错误中应用逻辑,因为 401 go to onerror of xhr;”如何确保将凭据传递给 GET 请求?或者这是一个不可用的功能?

标签: ews-javascript-api


【解决方案1】:

ews-javascript-api 中的自动发现需要大量重写才能正常工作。

自动发现被重新编写,最新的开发版本带有@next 标签。 您现在可以在安装npm i ews-javascript-api@next 时使用它,一旦稳定版本出来,您就可以安装常规版本。

 var Service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);   
 Service.Credentials = new WebCredentials(user, pass);

 //Autodiscover
 Service.AutodiscoverUrl(user, this.RedirectionUrlValidationCallback);
 console.log(Service.Url);

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2023-03-20
    • 2013-09-28
    • 2022-10-24
    • 2018-07-23
    • 2019-04-07
    • 2013-09-19
    • 2012-03-10
    • 2012-08-31
    相关资源
    最近更新 更多