昨天在学习使用前端ajax调用GeoServer的接口时,遇到了一些问题:
一:前端的Header中没有传入授权认证,导致 401错误:ajax未进行用户名密码验证
解决方法:
headers: { 'Authorization': 'Basic YWRtaW46Z2Vvc2VydmVy' }
用户名和密码通过basic64加密后得到的YWRtaW46Z2Vvc2VydmVy,这里我设置的用户名和密码是:用户名:admin 密码:geoserver。
二:跨域请求错误
这个错误是在浏览器控制台上报出来的,在学习调用GeoServer的接口时,我先通过tomcat启动GeoServer的war包,再通过springboot项目写一个前端页面实现调用。在调用时候tomcat和springboot分别使用了不同的端口8081和8080,所以在前端调用GeoServer的接口的时候发生了跨域请求。
解决方法:
1.通过使用nginx统一端口
参考文章:https://blog.csdn.net/dahongdahong/article/details/54629407
2.修改GeoServer发布包中的web.xml文件
参考文章:https://www.cnblogs.com/zhcBlog/p/9858393.html
3.在response中加入Access-Control-Allow-Origin