我有一个网页,需要从动态CRM2011在线使用jQuery获取信息。作为测试,我刚刚尝试从测试系统中检索所有帐户。我使用了一些在CRM产品中测试过的代码,它可以工作。
当我试图在不在CRM域中的单独网页中运行相同的jQuery代码时,它不工作(没有传输),所以我添加了$.support.cors = true行以允许跨站点脚本。现在,当它运行时,它会弹出一个对话框,要求提供凭据。但是,当我在线输入CRM的凭据时,它不接受它们。在三次尝试之后,我得到了错误,“未授权”。
有人能帮上忙吗?
代码如下:
$(document).ready(function()
{
var request = "https://myorganisation.crm4.dynamics.com/XRMServices/2011/OrganizationData.svc/AccountSet";
$.support.cors = true;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: request,
async: false,
beforeSend:
function (XMLHttpRequest)
{
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success:
function (data, textStatus, XmlHttpRequest)
{
var result = data.d.results[0];
alert('Success');
alert(result);
alert(result.Name);
},
error:
function (XmlHttpRequest, textStatus, errorThrown)
{
alert(textStatus);
alert(errorThrown);
}
});
});发布于 2012-06-21 04:29:37
oData终结点不支持跨站点请求。它只支持使用Silverlight或JavaScript Web Resources在客户关系管理应用程序中进行身份验证。
请查看此MSDN article以了解更多信息。
发布于 2012-06-20 16:21:09
我想我在一段时间前遇到过类似的情况:函数工作正常,但请求不能立即使用成功函数更新变量的值
这就是为什么我使用always()函数而不是success来使用接收到的值更新变量的原因
新的always函数=在请求完成后触发的旧的已完成函数
http://api.jquery.com/jQuery.ajax/
来自本页面的
:弃用通知: jqXHR.success()、jqXHR.error()和jqXHR.complete()回调在jQuery 1.8中将被弃用。要为最终删除它们的代码做好准备,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。
https://stackoverflow.com/questions/11115269
复制相似问题