CRM OData OrganizationData.svc 不适用于 IP
CRM OData OrganizationData.svc does not work by IP
我一直在处理 CRM 自动更新归档,我在
之前让它工作了
var lookUpObjectValue = Xrm.Page.getAttribute("new_kdid").getValue();
if ((lookUpObjectValue != null))
{
var lookupid = lookUpObjectValue[0].id;
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataSetName = "new_kdSet?";
var odataSelect = serverUrl + ODATA_ENDPOINT + "/" + odataSetName +
"$select=new_City" +
"&$filter=new_kdId eq (guid'" + lookupid + "')" +
"&$top=1";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataSelect,
beforeSend: function (XMLHttpRequest) {XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, XmlHttpRequest){
Xrm.Page.getAttribute("address1_city").setValue(data.d.results[0].new_City);
},
error: function (XmlHttpRequest, textStatus, errorThrown) { alert('OData Select Failed: ' + odataSelect); }
});
}
在我通过 IP 连接到 CRM 之前它工作正常。
喜欢 http://193.92.1.4/CRMTest/main.aspx# 而不是
crm-server01/CRMTest/main.aspx
然后我收到错误 OData Select Failed:/*Some url that start with crm-server01/ ... */ 当我 运行 它得到正确的数据?
这归结为跨站点脚本。您会发现很多不同的 JavaScript 在 CRM 上执行请求时都会发生这种情况。
我建议仅使用您的服务器名称连接到 CRM。
我一直在处理 CRM 自动更新归档,我在
之前让它工作了var lookUpObjectValue = Xrm.Page.getAttribute("new_kdid").getValue();
if ((lookUpObjectValue != null))
{
var lookupid = lookUpObjectValue[0].id;
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataSetName = "new_kdSet?";
var odataSelect = serverUrl + ODATA_ENDPOINT + "/" + odataSetName +
"$select=new_City" +
"&$filter=new_kdId eq (guid'" + lookupid + "')" +
"&$top=1";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataSelect,
beforeSend: function (XMLHttpRequest) {XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, XmlHttpRequest){
Xrm.Page.getAttribute("address1_city").setValue(data.d.results[0].new_City);
},
error: function (XmlHttpRequest, textStatus, errorThrown) { alert('OData Select Failed: ' + odataSelect); }
});
}
在我通过 IP 连接到 CRM 之前它工作正常。 喜欢 http://193.92.1.4/CRMTest/main.aspx# 而不是 crm-server01/CRMTest/main.aspx
然后我收到错误 OData Select Failed:/*Some url that start with crm-server01/ ... */ 当我 运行 它得到正确的数据?
这归结为跨站点脚本。您会发现很多不同的 JavaScript 在 CRM 上执行请求时都会发生这种情况。
我建议仅使用您的服务器名称连接到 CRM。