在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的末尾可能会多余地添加一个斜杠字符,我们需要处理它。
然而,提供给上述问题的所有答案似乎都省略了该问题。响应者是否错过了,或者代码是否过于保护并且可以放松控制?
答案 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相关的问题,可能需要检查。