更新:此代码实际上确实创建了所需的记录 - 但令人困惑的是,成功回调未被触发,但错误回调是。我不确定这会带来什么影响。
我正在尝试使用HTML网络资源在动态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);
}
});
}
单击窗体中嵌入的HTML Web资源上的按钮即可运行 postAnswers()
。我不确定为什么,但这会以“失败”的形式返回,而textStatus则是“错误”。除此之外,我在控制台中没有任何明显的错误,这使得很难排除故障。
是否有任何可预见的原因导致此代码无法创建记录?或者为什么请求失败?非常感谢您的帮助。
答案 0 :(得分:1)
jQuery错误回调中的第一个参数是jqXHR object,其中包含responseText
属性。看一下,看看有关错误的更多细节。
请注意,不推荐使用error
和success
回调,而是赞成jQuery 3.0中的fail
和done
。