是否需要在OrganizationData服务结束时处理斜杠字符?

时间:2012-12-11 12:01:18

标签: dynamics-crm-2011 crm

MSDN article链接到this question的@JamesWood中,这段代码段落(在此解释)用于获取服务器名称。

function getServerUrl(){
  var serverUrl = this.context().getServerUrl()
  if (serverUrl.match(/\/$/)) {
    serverUrl = serverUrl.substring(0, serverUrl.length - 1);
  }
  return serverUrl;
}

我不是JS也不是RegEx大师,但在我看来,在URL的末尾可能会多余地添加一个斜杠字符,我们需要处理它。

然而,提供给上述问题的所有答案似乎都省略了该问题。响应者是否错过了,或者代码是否过于保护并且可以放松控制?

3 个答案:

答案 0 :(得分:1)

正则表达式和子字符串处理此问题。查看this article,其中解释了getServerUrl的工作原理。

答案 1 :(得分:1)

MSDN文章中的代码是为了满足CRM内部部署和CRM Online之间的差异 在CRM内部部署(实际上是合作伙伴托管)我使用

var orgdata = Xrm.Page.context.getServerUrl() +
  "XRMServices/2011/OrganizationData.svc"

Xrm.Page.context.getServerUrl()返回带有/的URL,如果您要使用 OrganizationData ,这会更方便。

我不知道CRM Online如何返回服务器URL,但如果您知道您的代码将位于CRM On-Premise中,那么我建议您不要使用正则表达式和模式匹配。

答案 2 :(得分:0)

据我所知,当谈到最后的​​斜线时,在线和内部部署解决方案没有区别。我的解释是,它可能是旧版设置中的遗留问题,或者更可能是这种情况,是一种更安全而不是抱歉的方法。

我从来没有用过这个,而且我对额外的斜线没有任何问题。也许对于联邦解决方案...

我的建议是,你跳过它,但你也要记住它做一个心理记录。如果存在一些与URL相关的问题,可能需要检查。