Javascript Odata$筛选器未检索值

Javascript Odata$筛选器未检索值,javascript,filter,odata,jaydata,Javascript,Filter,Odata,Jaydata,我有一个JS,它有odata$select和$filter来检索一个名为的字段“ct\U portfolioid”使用ct\U portfoliocode进行过滤 url似乎没有返回portfolioid。url未定义 var serverUrl = Xrm.Page.context.getServerUrl(); var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; var filter="

我有一个JS,它有odata
$select
$filter
来检索一个名为
的字段“ct\U portfolioid”
使用
ct\U portfoliocode进行过滤

url似乎没有返回portfolioid。url未定义

var serverUrl = Xrm.Page.context.getServerUrl();
        var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
        var filter="ct_apxportfoliocodeSet?$select=ct_portfolioid&$filter=ct_portfoliocode eq '" + portfolioCode +"'";

        $.ajax({
            async: true,
            type: "GET",
            url: serverUrl + ODATA_ENDPOINT + "/"+filter,
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            beforeSend: function (XMLHttpRequest) {
                XMLHttpRequest.setRequestHeader("Accept", "application/json");
            },

作为手工编码协议数据的替代方案,您可以尝试使用JavaScript语言查询和本机crud操作支持,在OData上提供高级语义API

使用JayData,您不必手动组装oData
$filter、$sort、$select
等表达式,还可以使用本机JavaScript语法

使用JayData可以更轻松地实现上述查询:

$data.YourContext.filter(function(a) {return a.ct_portfolicode==this.portfolioCode;}, {portfolioCode: YourValue})
.map(function(p) {return p.ct_portfolioid;})
.toArray(...);

您可以从

下载最新的JayData版本。您能否更详细地说明您收到的回复?理想情况下,使用一些跟踪工具(例如fiddler)获取请求/响应的跟踪。@vitekkarasmssft感谢您的输入。我发现错误时替换了var filter=“ct\u apxportfoliocodeSet?$select=ct\u portfolioid&$filter=ct\u portfoliocode eq%27”+portfoliocode+%27”;url现在返回portfolioid谢谢!