Dynamics CRM无法使用Javascript/HTML Web资源创建记录

Dynamics CRM无法使用Javascript/HTML Web资源创建记录,javascript,html,ajax,crm,microsoft-dynamics,Javascript,Html,Ajax,Crm,Microsoft Dynamics,更新:这段代码实际上确实按照需要创建了记录——但令人困惑的是,没有触发成功回调,而是触发了错误回调。我不确定这对未来会有什么影响 我正在尝试使用HTML web资源在dynamics crm中创建记录。正在创建的记录是为自定义实体创建的。应创建记录的代码如下所示: function postAnswers () { var serverUrl = Xrm.Page.context.getClientUrl(); var ODATA_ENDPOINT = "/XRMServices

更新:这段代码实际上确实按照需要创建了记录——但令人困惑的是,没有触发成功回调,而是触发了错误回调。我不确定这对未来会有什么影响

我正在尝试使用HTML web资源在dynamics crm中创建记录。正在创建的记录是为自定义实体创建的。应创建记录的代码如下所示:

function postAnswers () {
    var serverUrl = Xrm.Page.context.getClientUrl();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var odataSetName = "new_regquestionanswersSet"
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName;

    var answer = {};
    // Define attribute values for the CRM object you want created
    answer.new_name = "Test Answer!";

    //Parse the entity object into JSON
    var jsonAnswer = window.JSON.stringify(answer);
    //Asynchronous AJAX function to Create a CRM record using OData
    $.ajax({ type: "POST",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        url: odataUri,
        data: jsonAnswer,
        beforeSend: function (XMLHttpRequest) {
            //Specifying this header ensures that the results will be returned as JSON.
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest) {
            answer = data.d;
            alert("success");
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("failure");
            console.log(textStatus);
        }
    });
}
postAnswers()
只需单击表单中嵌入的HTML web资源上的按钮即可运行。我不确定为什么,但这是回来作为“失败”和textStatus是“错误”。除此之外,我没有得到任何明显的错误在控制台,这使得它很难排除故障


是否有任何可预见的原因导致此代码无法创建记录?或者为什么请求失败?非常感谢您的帮助。

jQuery错误回调中的第一个参数是包含
responseText
属性的。请看一看,以了解有关错误的更多详细信息


请注意,在jQuery 3.0中,
错误
成功
回调被弃用,取而代之的是
失败
完成

可能值得使用Fiddler捕获流量,您可能会得到相同的“错误”,但在过去,我还看到了其他详细信息。您能否向我们发送“textStatus”错误消息。我通常在看到这个错误消息后开始。谢谢你的回复。请原谅我的无知,但我怎么理解那篇课文呢?我尝试在错误回调中包含
console.log(XMLHttpRequest.responseText)
,但是控制台打印一个空白(我知道,奇怪的说法是这样的。不打印未定义的,但在执行console.log的行上没有显示任何内容。)希望这是有意义的。这听起来是正确的方法。我尝试在没有任何更改的情况下运行您的代码,之后XMLHttpRequest.responseText包含一条警告,指出我的系统中没有新的\u regquestionanswersSet。我将var odataSetName=“new\u regquestionanswersSet”更改为odataSetName=“AccountSet”,并将answer.new\u name=“Test-answer!”更改为answer.name=“Test-answer!”。在此之后,查询成功。您是否可以对默认帐户实体进行同样的尝试,或者在浏览器中设置一个断点以深入jqXHR?在更改代码以使用默认帐户实体进行测试后,我遇到了相同的行为。真正让我困惑的是,代码实际上创建了一条新记录,但是jqueryajax调用触发了错误回调。