转:https://blog.csdn.net/u013323965/article/details/52449502

问题产生:

     openlayer3加载WFS存在跨域问题,需要用jsonp解决,而jsonp需要用script加载,但加载有误,如图所示,读取cite:bou2_4p图层的GeoJSON
载入地址是这样的http://localhost:8080/geoserver/cite/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=cite:bou2_4p&maxFeatures=20000000&outputFormat=application%2Fjson
(与WMS不同,真正的发布地址并不是这个)
 
在geoserver中看到,它输出的格式是json,但如果在js中调用会存在跨域的问题产生
 
但出现了如图所示的问题,查看开发工具发现json数据没有套上回调名。

调用代码

在代码中,我将输出格式改变为javascript来解决jsonp
 //参数字段
var wfsParams = {
service : 'WFS',
version : '1.0.0',
request : 'GetFeature',
typeName : 'cite:bou2_4p', //图层名称
outputFormat : 'text/javascript', //重点,不要改变
format_options : 'callback:loadFeatures' //回调函数声明
}; var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
loader: function(extent, resolution, projection) { //加载函数
var url = 'http://localhost:8080/geoserver/wfs';
$.ajax({
url: url,
data : $.param(wfsParams), //传参
type : 'GET',
dataType: 'jsonp', //解决跨域的关键
jsonpCallback:'loadFeatures' //回调 });
},
strategy: ol.loadingstrategy.tile(new ol.tilegrid.createXYZ({
maxZoom: 25
})),
projection: 'EPSG:4326'
});
//回调函数使用
window.loadFeatures = function(response) {
vectorSource.addFeatures((new ol.format.GeoJSON()).readFeatures(response)); //载入要素 };
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
但出现了如图所示的问题,查看开发工具发现json数据没有套上回调名。

问题的解决

 
问题应该是在geoserver中产生的,后来在geoserver的web.xml中发现,jsonp的注释没有被注销,导致无法输出jsonp
 
最后结果,看到已经没有问题

最新文章

  1. 你可能没注意的CSS单位
  2. Java 的设计模式之一装饰者模式
  3. css-单位%号-background-size-background-position-遁地龙卷风
  4. Javascript 截取2位小数
  5. IOS常见错误之一连线错误
  6. java7笔记
  7. 第19章 使用PXE+Kickstart部署无人值守安装
  8. Python基础学习笔记(八)常用字典内置函数和方法
  9. while循环中不支持循环使用curl
  10. 使用 Feedly RSS阅读器订阅技术大牛的博客
  11. 任意长度的正小数的加法(YT新人之巅峰大决战05)
  12. git提交如何忽略某些文件
  13. Fork/Join框架详解
  14. JS的基础知识回顾
  15. Html - 后台模板
  16. sublime 安装ctags跳转以及跳转快捷键
  17. C++11 类型后置语法
  18. 《DSP using MATLAB》Problem 7.9
  19. validateRequest 相关的作用
  20. 『TensorFlow』SSD源码学习_其四:数据介绍及TFR文件生成

热门文章

  1. 【JMeter4.0学习(十一)】之JMeter对(Mysql、Oracle)数据库性能测试脚本开发
  2. laravel学习之路4artisan
  3. centos7 安装vnc服务
  4. Spring Cloud 微服务六:调用链跟踪Spring cloud sleuth +zipkin
  5. SourceTree超前一个版本,落后N个版本
  6. MATLAB循环结构:while语句P69范数待编
  7. POJ 2993 Emag eht htiw Em Pleh【模拟画棋盘】
  8. 换教室(期望+DP)
  9. JAXB解析XML为对象
  10. 海信电视 LED55K370 升级固件总结【含固件下载地址】