Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript创建用于调用OrganizationData.svc的URL字符串_Javascript_Dynamics Crm 2011 - Fatal编程技术网

使用JavaScript创建用于调用OrganizationData.svc的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

目前,我有两种不同的方法来决定我的JS运行在哪个版本的CRM上。地址相似,但仍然不同,这取决于它是在线的还是本地的。我已经尝试集成它们,但它仍然取决于一个变量,如下面的代码所示。什么是更整洁的解决方案(为组织数据选择正确的服务URL)

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端点的前几个函数(我在这里省略了几个步骤,所以请务必查看示例代码):

  • 我不会使用parent.window.location.host(甚至不确定是否支持它)
  • 无论是在线版本还是内部版本(不必要),您都可以获得organizationName
  • 如果在安全HTTP上设置了内部部署(或者您还需要另一个标志),则调用将失败
  • 我的建议是关注CRM 2011(旧版本4使用SOAP,而不是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";
    }