首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用单张js从Geoserver下载数据

用单张js从Geoserver下载数据
EN

Stack Overflow用户
提问于 2017-07-11 15:15:31
回答 1查看 1.6K关注 0票数 0

我正试图使用传单将来自Geoserver的数据加载到我的网站上,但是我得到了一个错误:“Uncaught :意外令牌:”我的GeoJSON链接的Url链接。

我对代理和CORS感到困惑,但我认为这可能是答案,但我希望找到一个更简单的解决方案。如果有人能帮我解决这个问题,我将非常感激。

这就是我想要运行的代码。

代码语言:javascript
复制
<!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>
EN

回答 1

Stack Overflow用户

发布于 2017-07-16 15:16:42

一个问题是:

代码语言:javascript
复制
<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”。(来源)

代码语言:javascript
复制
$.ajax({ 
    type: "GET",
    url: geoJsonUrl, 
    dataType: 'json',
    success: loadGeoJson,
    jsonp: false 
});

我用一个随机的公共Geoserver实例对此进行了测试,对CORS没有任何问题,但是您的里程可能会有所不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45038472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档