2017-04-04 60 views
0

我能够成功地将ORGANIZATION_URL/XRMServices/2011/OrganizationData.svc/AccountSet?$select=AccountNumber达到XRMServices并在登录后在浏览器上检索客户帐号登录后,但是,有一个认证服务阻止这一点,如果我使用AJAX。我的代码如下检索记录中使用AJAX的jQuery

$.ajax({ 
      type: "GET", 
      contentType: "application/json; charset=utf-8", 
      datatype: "json", 
      url: ORGANIZATION_URL+ "/XRMServices/2011/OrganizationData.svc/AccountSet?$select=AccountNumber,Telephone1,Telephone2,new_CustomerDiscGroup,EMailAddress1,EMailAddress2,EMailAddress3", 
      beforeSend: function (XMLHttpRequest) { 
       XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
       console.log(XMLHttpRequest); 
      }, 
      complete: function (XmlHttpRequest) { 
       console.log(XMLHttpRequest); 
      }, 
      success: function (data, textStatus, XmlHttpRequest) { 
       console.log(data); 
      }, 
      error: function (XmlHttpRequest, textStatus, errorThrown) { 
       console.log(textStatus); 
      } 
     }); 

我错过了什么?

+0

是您的AJAX调用动态CRM例如内运行在一个实体的形式?你收到什么错误信息? –

回答

-1

经历了巨大的痛苦之后,下面是使用jQuery登录到Dynamics CRM的答案

$.ajax({ 
    url : 'https://<Your Authentication URL for CRM>/adfs/ls', 
    data : { 
     UserName : '<username>', 
     Password : '<password>', 
     wa : 'wsignin1.0', 
     wauth : 'urn:federation:authentication:windows', 
     wtrealm : '<CRM Location>', 
     wct : 'YYYY-MM-DDTHH:MM:SSZ' 
    }, 
    headers : { 
     Accept: 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap,application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*','Content-Type': 'application/x-www-form-urlencoded','Access-Control-Allow-Origin' : '*' 
    }, 
    crossDomain: true, 
    dataType: 'jsonp', 
    beforeSend : function(xhr){ 
     console.log(xhr); 
    }, 
    complete : function(xhr){ 
     console.log(xhr); 
    }, 
    success : function(xhr){ 
     console.log(xhr); 
    }, 
    error : function(xhr){ 
     console.log(xhr); 
    } 
}); 

希望帮助别人

0

最有可能你在做跨站点脚本错误。所以您在使用例如http://localhosthttp://ip_number打开你的CRM,然后在你的Ajax调用您使用ORGANIZATION_URL这可能是不同的(例如http://contosocrm)。确保你打电话给你的ajax请求的地址与你用来访问CRM的地址完全一样(或者是调用ajax的页面)