1

在 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);
        }
    });
4

2 回答 2

0

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

当你指定dataType:"json"

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

于 2013-10-03T09:14:26.483 回答
0

我们发现了问题所在,结果发现其中一个字段包含不受支持的字符,在本例中为长破折号,因此在检索它时 ajax 调用失败。

感谢你的协助

于 2013-10-03T09:59:19.233 回答