我正在使用Geoserver和一个用OpenLayers 3编写的应用程序。该应用程序可以使用WFS服务下载压缩的shapefile,除非我发出大(长URL)请求,否则它将起作用。在这种情况下,我在Chrome中收到413错误。
有没有办法可以更改此设置,以便我可以向Geoserver提出更长的请求(或者是其他问题?
这是请求:
$('#btnDownloadSHP').click(function (e) {
var tostring = '(' + ids.toString() + ')';
var data = {
service: 'WFS',
version: '1.1.0',
request: 'GetFeature',
typename: 'download_layer',
format_options: "filename:" + shapefileName,
srsname: 'EPSG:3857',
outputFormat: 'SHAPE-ZIP',
CQL_FILTER: "id IN " + tostring
}
var parameters = Object.keys(data).map(function (key) {
return key + '=' + data[key]
}).join('&');
var url = "http://" + servername + "/geoserver/wfs?" + parameters;
//make dummy link and download shapefile
var link = document.createElement("a");
link.download = 'Features';
link.href = url;
link.click();
// }
});
该响应将由运行GeoServer的服务器生成,而不是由GeoServer本身生成。因此,根据您使用的httpd和/或servlet引擎,您可以在那里修复它。
但简单的答案是从GET切换到POST。