0

我正在将 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();

           // }
        });
4

1 回答 1

1

该响应将由运行 GeoServer 的服务器生成,而不是由 GeoServer 本身生成。因此,根据您使用的 httpd 和/或 servlet 引擎,您可能可以在那里修复它。

但简单的答案是从 GET 切换到 POST。

于 2019-04-18T06:40:50.077 回答