1

我想在警报消息中打印从我的实体检索到的值。我将值存储在相关产品数组中我想打印这些值。当它尝试打印它们时,它会给出未定义的消息。请帮助我

    relatedProducts = [];

    function onload() {
       var oDataUri="https://yanceyworksllc.crm.dynamics.com/xrmservices/2011/OrganizationData.svc/ProductSet?$select=new_price,ProductId&$filter=new_TaxInformation/Value eq 1";
       GetRecords(oDataUri);
       var totalRecords = relatedProducts .length;
    }

    function GetRecords(url) {
        jQuery.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            datatype: "json",
            url: url,
            async: false,
            beforeSend: function (XMLHttpRequest) {
             var x=   XMLHttpRequest.setRequestHeader("Accept", "application/json");

            },
            success: function (data, textStatus, XmlHttpRequest) {
                if (data && data.d != null && data.d.results != null) {
                    AddRecordsToArray(data.d.results);
                    FetchRecordsCallBack(data.d);
                }
            },
            error: function (XmlHttpRequest, textStatus, errorThrown) {
             //  FetchRecordsCallBack(data.d);
                alert("Error :  has occured during retrieval of the records ");
            }
        });
    }

    function AddRecordsToArray(records) {
        for (var i = 0; i < records.length; i++) {
            relatedProducts .push(records[i]);
           alert(relatedProducts[i].Value) ;

        }

    }

    function FetchRecordsCallBack(records) {
        if (records.__next != null) {
            var url = records.__next;
            GetRecords(url);
        }
    }
4

1 回答 1

0

对 OData 调用进行故障排除的一种非常简单的方法是将 URI 复制到浏览器中并导航到该页面。如果它没有将您带到包含数据的页面,则意味着您的 uri 错误。如果是这样,那么您正在错误地处理结果数据(即,如果调试器在 GetRecords 中命中成功块,则您的 AddRecordsToArray 或 FetchRecordsCallBack 已损坏)。

旁注 - 我从未见过“。[属性名称]”之前的空格。这甚至是有效的 JavaScript 语法吗(如您的 relatedProducts .push 或 relatedProducts .length 中)?

于 2015-08-28T21:03:02.567 回答