使用Geoserver的瓦片服务时,比如wmts服务,如果不再范围内就会返回400错误,内容是text/xml格式,是一些瓦片行列号不在范围内的信息。

  对于大范围内的瓦片我们可以不用关心这类问题,但对于局部范围内的瓦片或者缩放至较小级别时,400错误在浏览器控制台里泛滥了。我本来可以无视这类问题,毕竟不影响使用,用户也不会打开控制台。但工作上与其他公司合作时,他们就对这类问题特别热心,一定要我想办法去掉。

  Geoserver界面和携带的各种可手动配置的文件我都仔细查看过/测试过,连同官网的文档也仔细看过了,也没有找到类似的解决方法。我在网上搜索这类问题时,也都是一些瓦片请求不到的问题,完全不相关!问了以前的同事,才知道Geoserver本身是去不掉这类错误的,通常的做法是采用nginx代理,把错误过滤掉,返回一个透明的瓦片。

location /geoserver/ {proxy_pass http://xxx.com/geoserver/;set $tile 'pic.png';proxy_intercept_errors on;error_page 400 =200 /dahong/$tile;
}location /dahong/ {add_header Access-Control-Allow-Origin $http_origin;add_header Access-Control-Allow-Headers *;root C:/Users/dell/Pictures/;
}

上述做法是同事采用的方式,将错误拦截器打开,然后赋一个透明的图片(256*256),这样在控制台中400错误不再显示。

正常情况下,这样就算是解决了。但有时候我们并不想返回图片,没有内容就应该返回204嘛,而不应该是一张图片(透明图片也不行!)

比如我现在是使用geoserver发布的mapbox瓦片,返回png图片是不对的,会报错的。

location /geoserver/ {proxy_pass http://xxx.com/geoserver/;proxy_intercept_errors on;error_page 400 =204 /dahong/;
}location /dahong/ {add_header Access-Control-Allow-Origin $http_origin;add_header Access-Control-Allow-Headers *;add_header 'Content-Length' 0;return 204;
}

对上述内容稍作修改,将图片去掉,200改成204,返回内容长度改为0

nginx,真是个好东西!

Geoserver禁止返回400错误相关推荐

  1. PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)

    目录 一.请求参数中携带URL字符返回400错误 二. 请求参数中携带URL字符返回400错误原因 三.URL字符及对应的URL编码值列表 四.请求参数中携带URL字符转成URL编码值 一.请求参数中 ...

  2. https返回400_HTTP请求中带有特殊字符|,返回400错误

    Java平台,服务器是Tomcat8,前端ajax访问服务器时,F12返回400错误,经分析,URL地址中get传参值里面含有"|", Invalid character foun ...

  3. 客户端返回400错误

    今天测试终端连接服务器,返回400错误,定位了一下,是终端post请求问题.我们post的数据是json格式的,但是Content-Type却是application/x-www-form-urlen ...

  4. 【WebApi】WebApi的Post方法的参数问题和C#调用WebApi返回400错误

    学习WebApi时间较短,在一个项目中需要向WebApi发送数据,但是使用C#调用WebApi(Post)时总返回400错误,找了很久,总以为是调用方法有问题,后来发现其实是WebApi中,Post方 ...

  5. php400错误的请求,Wordpress中的Ajax返回400错误请求,但不确定如何进一步调试 - WordPress - srcmini...

    我一直试图使用Ajax将页面的数据(或其他任何东西)输出到div中.数据基于页面上的列表.尽管调用Ajax请求的jQuery函数似乎可以正常工作, 但是从Ajax调用在控制台上却收到了400个错误的请 ...

  6. 服务器返回400错误

    运维的项目,莫名其妙的有些接口报了400错误,和前端一起检查了传参格式.传参实体类是否一一对应等,因为入参有中文,顺带把编码格式也查了,但都没问题,而且最神奇的是,正式服该接口就报400错误,在自己搭 ...

  7. WCF大数据传输造成400错误的解决方案

    1.WCF服务端的web.config文件中增加以下配置: <system.serviceModel>     <bindings>       <basicHttpBi ...

  8. http post请求报400错误

    最近在学习python,浏览器发送post请求时,服务器一直返回400错误,找了一些资料最后发现是这个原因:前端提交的到后台的数据应该是 json 字符串类型,而前端没有将对象转化为字符串类型,所以在 ...

  9. EasyCVR通过GB28181协议注册到海康NCG平台返回400原因分析

    海康NCG网关是一款集信令网关服务.媒体网关服务.安全认证.权限管理.日志管理以及网管功能于一体的电信级联网网关设备,可基于GB/T28181联网标准实现视频监控平台间的级联.互联.海康NCG网关可以 ...

最新文章

  1. control.add()
  2. 一步步实现:springbean的生命周期测试代码
  3. 密码学 / PKI 体系概述
  4. div弹窗如何设置不超出页面_js实现弹窗功能(以支付方式为例)
  5. Mysql数据库的使用总结之ERROR 1146 (42S02)
  6. Restful对于URL的简化
  7. spring管理的类如何调用非spring管理的类
  8. Git中非常重要的一个文件——.gitignore详解
  9. 前端开发中游览器的兼容问题总结
  10. (22)Verilog HDL结构:function语句
  11. 《互联网+ 电商平台设计与运营》一一2.4 小结
  12. sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度
  13. android build.prop 修改,修改android的build.prop文件真的能够提高android设备性能?!...
  14. Unity Shader - Specular mode: Specular parameter 高光模式中的高光参数
  15. 油/水溶性CdS-ZnS/InP-ZnS/ZnSe-ZnS/CdSe/ZnS量子点的应用
  16. mldonkey 安装详细过程
  17. aleo测试网部署教程
  18. 一款由c++开发的计时器
  19. 2020前端工程师的发展前景
  20. IOS第二十九天——HTTP下载一个图片

热门文章

  1. 如何进行游戏陪玩app开发中的启动性能测试?
  2. java操作jedis_Redis教程 —— Java池化JedisPool操作Jedis
  3. 联想 android8,联想Moto手机官方升级安卓8.0设备列表大曝光:诚意满满!
  4. java 有序的Map LinkedHashMap简介
  5. [RHEL7基础篇-1] 简介及安装
  6. unity3d 实现简单水墨画效果
  7. Unity Shader学习笔记/Urp/水墨风效果
  8. Android studio安装app时报错 Error: Activity class {} does not exist
  9. 安卓手机与蓝牙模块联合调试(五)-- 编写自己的蓝牙控制界面控制单片
  10. 一款超级好用的文本编辑器:Notepad++下载,别再使用记事本了