基於CORS的GeoServer跨域訪問策略

2022-02-05 01:38:17 字數 1822 閱讀 8833

geoserver的跨域訪問問題,有多種解決方法,本文介紹一種基於cors的geoserver跨域訪問方法。

cors是乙個w3c標準,全稱是"跨域資源共享"(cross-origin resource sharing)。 cors是一種允許當前域(domain)的資源(比如html/js/web service)被其他域(domain)的指令碼請求訪問的機制,它允許瀏覽器向跨源伺服器,發出xmlhttprequest請求,從而克服了ajax只能同源使用的限制。通常由於同域安全策略(the same-origin security policy)瀏覽器會禁止這種跨域請求。

cors需要瀏覽器和伺服器同時支援。瀏覽器支援情況如下圖所示:

整個cors通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,cors通訊與同源的ajax通訊沒有差別,**完全一樣。瀏覽器一旦發現ajax請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。 因此,實現cors通訊的關鍵是伺服器。只要伺服器實現了cors介面,就可以跨源通訊。

在filter集合末尾額外加乙個filter,**如下:

<

filter

>

<

filter-name

>cross-origin

filter-name

>

<

filter-class

>org.mortbay.servlets.crossoriginfilter

filter-class

>

<

init-param

>

<

param-name

>allowedorigins

param-name

>

<

param-value

>*

param-value

>

init-param

>

<

init-param

>

<

param-name

>allowedmethods

param-name

>

<

param-value

>get,post

param-value

>

init-param

>

<

init-param

>

<

param-name

>allowedheaders

param-name

>

<

param-value

>x-requested-with,content-type

param-value

>

init-param

>

filter

>

<

>

<

filter-name

>cross-origin

filter-name

>

<

url-pattern

>/*

url-pattern

>

>

至此配置完畢。重啟geoserver即可利用cors來跨域訪問了

django基於cors做跨域處理

當前後端分離開發時,會出現跨域請求問題,解決思路如下 1 安裝django cors headers 這個包 pip install django cors headers 2.1.0 2 配置django settings.py django.contrib.admin corsheaders 配...

CORS 和 CSRF的區別

什麼是cors?cors是乙個w3c標準,全稱是 跨域資源共享 cross origin resoure sharing 它允許瀏覽器向跨源伺服器,發出xmlhttprequest請求,從而客服了a jax只能同源使用的限制。什麼是csrf?csrf主流防禦方式是在後端生成表單的時候生成一串隨機to...

雲儲存上傳的CORS問題

概念 cross origin resource sharing cors 是w3c工作草案,它定義了在跨域訪問資源時瀏覽器和伺服器之間如何通訊。cors背後的基本思想是使用自定義的http頭部允許瀏覽器和伺服器相互了解對方,從而決定請求或響應成功與否。對乙個簡單的請求,沒有自定義頭部,要麼使用ge...