漏洞 ID 编号 |
BUG-000104611 |
已提交 | April 20, 2017 |
上次修改时间 | June 5, 2024 |
适用范围 | ArcGIS API for JavaScript |
找到的版本 | 3.20 |
操作系统 | Windows OS |
操作系统版本 | 10.0 64 Bit |
状态 | Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
|
附加信息
The problem is that setPreRequestCallback does not just intercept the query request, it intercepts other requests and not all of those requests have a where property on the content. Some checks need to be added to the setPreRequestCallback function to ensure a query task request.
To test this in the sample app (http://jsbin.com/zisoqib/3/edit?js,output) just surround the var y with an if statement as follows.
esriRequest.setRequestPreCallback(function (ioArgs) {
var x = ioArgs.url.endsWith("query");
if(ioArgs.content && ioArgs.content.where){
var y = ioArgs.content.where.startsWith("xxx");
}
return ioArgs;
});
解决办法
Setting a definitionExpression on the layer causes the layer to render in the map. See this in the sample provided at http://jsbin.com/zisoqib/3/edit?js,output. Uncommenting both the definitionExpression within the properties of the layer and the line with the ioArgs.content.where, the layer renders in the map without issues.
重现步骤