使用JavaScript创建用于调用OrganizationData.svc的URL字符串
目前,我有两种不同的方法来决定我的JS运行在哪个版本的CRM上。地址相似,但仍然不同,这取决于它是在线的还是本地的。我已经尝试集成它们,但它仍然取决于一个变量,如下面的代码所示。什么是更整洁的解决方案(为组织数据选择正确的服务URL)使用JavaScript创建用于调用OrganizationData.svc的URL字符串,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,目前,我有两种不同的方法来决定我的JS运行在哪个版本的CRM上。地址相似,但仍然不同,这取决于它是在线的还是本地的。我已经尝试集成它们,但它仍然取决于一个变量,如下面的代码所示。什么是更整洁的解决方案(为组织数据选择正确的服务URL) var isOnLine=true; var organizationName=Xrm.Page.context.GetOrganizationName(); var组织URL =“http”+(isOnLine?:)+:/” +parent.window.loc
var isOnLine=true;
var organizationName=Xrm.Page.context.GetOrganizationName();
var组织URL
=“http”+(isOnLine?:)+:/”
+parent.window.location.host
+(isOnLine?“:“/”+组织名称)
+“/XRMServices/2011/OrganizationData.svc”;
最重要的是,我想要一种通过调用某物(不确定是什么)来获取服务URL的方法。如果不可能,我想建议一种方法来检测当前运行的脚本是部署在在线安装中还是部署在本地安装中
同样重要的是,该方法(如果有可用的话)将独立于版本工作(或者至少它使用if语句检查当前运行的版本)。我建议查看以下示例: 特别是: sample\Scripts/SDK.REST.js一个可重用的通用库,使用REST端点简化异步数据操作 网络资源 特别是像这样有效构建REST OrganizationData端点的前几个函数(我在这里省略了几个步骤,所以请务必查看示例代码):
您显示链接的代码似乎在getServerUrl调用结束时防止出现斜杠。我需要担心吗?(我问了一个关于这个主题的新问题,并在其中介绍了你。)我不确定,但这是一个Microsoft示例-因此,是的,斜杠可能值得注意。@CRMconfusee不确定。据我所知,REST服务将得到支持,因此我预计最引人注目的名称变化是2011年可能是2013年的exchange。然而,请记住,这些只是我的猜测。
Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
function getOrganizationDataService(){
return Xrm.Page.context.getServerUrl()
+ "/XRMServices/2011/OrganizationData.svc";
}