Dynamics CRM 8.2 WebApi 具有特殊字符的过滤器

问题描述 投票:0回答:1

我正在使用 JavaScript 对 Dynamics CRM OnPremise 进行 Web API 调用,当我的过滤器中有特殊字符(例如“&”)时,我遇到了问题。我正在对传递给过滤器的值进行编码,但没有检索到任何内容,也没有触发错误。以下是我用于请求的 URI 的过滤器部分:

"?$filter=contains(name,'"+ encodeURIComponent(value)+"')"

我已经验证我有很多记录的名称字段中有“&”。

我做错了什么?

dynamics-crm special-characters webapi
1个回答
-1
投票
var EmpName="Emp~!@#$%^&*()_+=-:"{}|<>?[]\;'.,/";
Xrm.WebApi.online.retrieveMultipleRecords("employee", "?$filter=(startswith(name,'" + specialXmlCharacterEncode(EmpName) + "')));
function specialXmlCharacterEncode(str) {
    return String(str).replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\$/g, "%24").replace(/\:/g, "%3A").replace(/\~/g, "%7E").replace(/\=/g, "%3D").replace(/\-/g, "%2D").replace(/\\/g, "%5C").replace(/\//g, "%2F").replace(/\?/g, "%3F").replace(/\./g, "%2E").replace(/\,/g, "%2C").replace(/\;/g, "%3B").replace(/\*/g, "%2A").replace(/\_/g, "%5F").replace(/\&/g, "%26").replace(/\+/g, "%2B").replace(/\!/g, "%21").replace(/\#/g, "%23").replace(/\@/g, "%40").replace(/\'/g, "''");
}
© www.soinside.com 2019 - 2024. All rights reserved.