使用jQuery的Dynamics CRM 2011 REST API
我个人对CRM 2011没有任何经验,只是最近才了解到REST oData API,所以决定使用基本的jQuery ajax调用来破解它。我创建了一个基本的html页面,并将以下代码放在其中,这些代码来自我从各种Google搜索中提取的代码片段。这似乎是一个相当直截了当的呼吁:使用jQuery的Dynamics CRM 2011 REST API,api,rest,jquery,dynamics-crm-2011,dynamics-crm,Api,Rest,Jquery,Dynamics Crm 2011,Dynamics Crm,我个人对CRM 2011没有任何经验,只是最近才了解到REST oData API,所以决定使用基本的jQuery ajax调用来破解它。我创建了一个基本的html页面,并将以下代码放在其中,这些代码来自我从各种Google搜索中提取的代码片段。这似乎是一个相当直截了当的呼吁: var serverurl = 'http://[OrganizationUrl]/XRMServices/2011/OrganizationData.svc/[PrivateEntity]?$select=[Priva
var serverurl = 'http://[OrganizationUrl]/XRMServices/2011/OrganizationData.svc/[PrivateEntity]?$select=[PrivateEntity_Field1],[PrivateEntity_Field2]';
$.ajax({
beforeSend: function (xhr) {
xhr.setRequestHeader('Accept', 'application/json');
},
url: serverurl,
type: 'GET',
dataType: 'jsonp',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('success');
},
error: function (xhr, status, error) {
alert("Error : " + status);
},
});
所有这一切只是转到错误回调并发出警报“error:parseerror”
仔细检查FireBug会得到以下请求和响应头:
尽管在头和内容中显式指定了json,但它仍然返回xml/atom提要,并且仍然返回错误回调,而不是成功
是否必须从CRM内部执行此JavaScript,即首先部署到CRM?或者它可以像我在外部自包含HTML页面中所做的那样工作吗?我熟悉jQuery,但不熟悉CRM或这个restapi,所以这里有点超出我的深度。谢谢你的帮助
更新:我在fiddler中执行了以下代码,它带回了我对CRM的期望:
GET http://[OrganizationUrl]/XRMServices/2011/OrganizationData.svc/[PrivateEntity]?$select=[PrivateEntity_Field1],[PrivateEntity_Field2] HTTP/1.1
User-Agent: Fiddler
Host: melmd0105:5555
Accept: application/json
CRM 2011 REST端点仅可用于Web资源,这意味着必须从CRM内部执行。请参阅本页: 在限制条件下,您会发现以下建议: REST端点的使用仅限于JScript库或 SilverlightWeb资源
我同意Guido的回答,即Microsoft说它仅限于Jscript或Silverlight,但我要说的是,它已经找到了一种进行身份验证的方法,您实际上可以编写linq查询来生成RestURL。这是我为CRM 2011生成Rest URL的最快方法(仅适用于On-Prem) 注意:我尝试使用Fiddler来确定他们在做什么来进行身份验证,但没有成功 下面是一个使用LinqPad和CRM的SO问题:
很公平。因此,我想最好的选择是部署到CRM并从CRM中运行JavaScript。