我正试图使用传单将来自Geoserver的数据加载到我的网站上,但是我得到了一个错误:“Uncaught :意外令牌:”我的GeoJSON链接的Url链接。
我对代理和CORS感到困惑,但我认为这可能是答案,但我希望找到一个更简单的解决方案。如果有人能帮我解决这个问题,我将非常感激。
这就是我想要运行的代码。
<!DOCTYPE html>
<html>
<head>
<title>Quick Start - Leaflet</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/leaflet.css" />
<link rel="markers" type="images/marker-icon" href="images/marker-icon.png" />
<script src="js/leaflet.js"></script>
<script src="js/esri-leaflet.js"></script>
<script src='https://code.jquery.com/jquery-1.11.0.min.js'></script>
<script src='https://code.jquery.com/jquery-1.5.min.js'></script>
</head>
<body>
<div id="map" style="width: 600px; height: 400px;"></div>
<script>
var mymap = L.map('map', {
zoomControl:true, maxZoom:28, minZoom:1
}).fitBounds([[51.0269253989,-1.34762355597],[51.1990603009,-0.951310026203]]);
L.esri.basemapLayer('Imagery').addTo(mymap);
//loads the geojson layer
var geojsonLayer = new L.GeoJSON();
function loadGeoJson(data) {
geojson.addGeoJSON(data);
}
var geoJsonUrl = "http://localhost:8080/geoserver/RSAC/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=RSAC:results_clipped_with_growth_small&maxFeatures=50&outputFormat=application%2Fjson";
$.ajax({
type: "GET",
url: geoJsonUrl + '&callback=?',
dataType: 'json',
jsonpCallback: 'loadGeoJson',
success: loadGeoJson,
});
</script>
</body>
</html>发布于 2017-07-16 15:16:42
一个问题是:
<script src='https://code.jquery.com/jquery-1.11.0.min.js'></script>
<script src='https://code.jquery.com/jquery-1.5.min.js'></script>您在1.11.0之后包含了两次jQuery,版本1.5 (非常陈旧和过时)。只需删除第二个jQuery即可。
在Javascript中,jQuery以JSONP格式获取数据。但是,带有outputFormat=application/json的Geoserver将发送JSON (而不是JSONP)。
要禁用jQuery的JSONP检查,您必须在这里提供参数jsonp: false:
除非请求在请求选项中包括
jsonp: false,否则跨域"json“请求将转换为"jsonp”。(来源)
$.ajax({
type: "GET",
url: geoJsonUrl,
dataType: 'json',
success: loadGeoJson,
jsonp: false
});我用一个随机的公共Geoserver实例对此进行了测试,对CORS没有任何问题,但是您的里程可能会有所不同。
https://stackoverflow.com/questions/45038472
复制相似问题