Загрузка WMS в Vuejs с помощью OpenLayers

Загрузка WMS в Vuejs с помощью OpenLayers

07.01.2020 12:01:04 Просмотров 39 Источник

Я пытаюсь прочитать слой WMS с локального хост-Геосервера в Vue.JS. Я запускаю Geoserver на другом порту, чем мой vue.JS.

Как я должен загрузить в Vue JS мой слой WMS, как в этом примере: https://vuelayers.github.io/#/docs/component/tile-layer

    <template>
      <vl-map :load-tiles-while-animating="true" :load-tiles-while-interacting="true" data-projection="EPSG:4326" style="height: 400px">
        <vl-view :zoom.sync="zoom" :center.sync="center" :rotation.sync="rotation"></vl-view>

        <vl-layer-tile>
          <vl-source-sputnik></vl-source-sputnik>
        </vl-layer-tile>

        <vl-layer-tile id="wmts">
          <vl-source-wmts :attributions="attribution" :url="url" :layer-name="layerName" :matrix-set="matrixSet" :format="format" 
                          :style-name="styleName"></vl-source-wmts>
        </vl-layer-tile>
      </vl-map>
    </template>

    //////////////////////////////// For WMS SOURCES 
<script>
  export default {
    data () {
      return { 
        zoom: 4,
        center: [50, 40],
        rotation: 0,
        cmp: 'vl-source-wms',
        url: 'http://localhost:8081/geoserver/cite/wms',
        layers: 'cite:vnm_polbnda_adm3_2014_pdc',
        extParams: { TILED: true },
        serverType: 'geoserver',
      }
    },
  }
</script>

В моем браузере: доступ к XMLHttpRequest по адресу ' http://192.168.1.23:3000/sockjs-node/info-что?t=1578388235952 'от начала координат 'http://localhost:3000" был заблокирован политикой CORS: значение заголовка "Access-Control-Allow-Origin " в ответе не должно быть подстановочным знаком"*", когда режим учетных данных запроса - "include". Режим учетных данных запросов, инициируемых XMLHttpRequest, управляется атрибутом withCredentials.

У вопроса есть решение - Посмотреть?

Ответы - Загрузка WMS в Vuejs с помощью OpenLayers / Loading WMS in Vuejs with OpenLayers

Pascut

07.01.2020 12:42:13

У вас есть проблема CORS (CORS означает совместное использование ресурсов из разных источников). Вам нужно включить CORS на вашем сервере.

devServer: {
  ...
  headers: {
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
    "Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
  }
}

Некоторые хорошие ресурсы для включения CORS можно найти здесь:

https://scotch.io/courses/build-an-online-shop-with-vue/enabling-cors

Если у вас есть php серверная часть вы можете просто включить следующий заголовок:

header(“Access-Control-Allow-Origin: *”);
Закрыть X