Ajax发布只返回一条记录的错误请求

时间:2013-10-03 09:08:47

标签: jquery ajax dynamics-crm-2011

在CRM 2011中加载我的一个表单时,我使用ajax帖子来清除某些字段。在大多数记录上它是好的,但在一个记录上它每次失败,我无法弄清楚这个会导致它失败的不同之处。有人可以查看我正在制作的电话,看看它是否有任何错误吗?

由于

var serverUrl = Xrm.Page.context.getClientUrl().toString();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var crmEntity = new Object();
    var ODATA_EntityCollection = "/SalesOrderSet";

    crmEntity.ts_payment_data = null;
    crmEntity.ts_payment_split = null;

    var jsonEntity = window.JSON.stringify(crmEntity);

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        async: true,
        url: serverUrl + ODATA_ENDPOINT + ODATA_EntityCollection + "(guid'" + orderid + "')",
        data: jsonEntity,
        beforeSend: function (XMLHttpRequest) {
            XMLHttpRequest.setRequestHeader("Accept", "application/json");

            XMLHttpRequest.setRequestHeader("X-HTTP-Method", "MERGE");
        },
        error: function (xmlHttpRequest, textStatus, errorThrown) {
            alert("ClearPaymentData\nStatus: " + textStatus + "; ErrorThrown: " + errorThrown + "; Response: " + xmlHttpRequest.responseText);
        }
    });

2 个答案:

答案 0 :(得分:0)

您无需指定XMLHttpRequest.setRequestHeader("Accept", "application/json")

指定dataType:"json"

另请注意dataType is case sensitive,因此不是数据类型

答案 1 :(得分:0)

我们发现问题是什么,结果是其中一个字段包含一个不受支持的字符,在这种情况下是一个长字符,因此ajax调用在检索时失败。

感谢您的协助