前端開發,解決跨域的幾種方法

2021-10-09 14:38:58 字數 2023 閱讀 2401

同源策略

什麼是同源策略,其作用是什麼?

同源策略指的是:協議+網域名稱+埠三者皆相同,可以視為在同乙個域,否則為不同域。同源策略限制了從同乙個源載入的文件或指令碼如何與來自另乙個源的資源進行互動。

作用是乙個用於隔離潛在惡意檔案的重要安全機制。

所限制的跨域互動包括:

當協議(protocol),主機(host)和埠號(port)三者只要有乙個不同則會出現跨域問題。

解決跨域的方式:

1.設定請求頭 ( 在專案測試中)

2.**伺服器

3.jsonp ( jsonp 只能支援get傳參的方式)

設定請求頭

response.

setheader

("access-control-allow-origin"

, request.

getheader

("origin"))

; response.

setheader

("access-control-allow-credentials"

,"true");

response.

setheader

("access-control-allow-methods"

,"post, get, options, delete");

response.

setheader

("access-control-max-age"

,"3600");

//***為新增跨域字段

response.

setheader

("access-control-allow-headers"

,"content-type,accept,x-requested-with,***"

) 設定access-control-allow-headers允許***欄位在請求頭中跨域請求

**解決跨域原理:

通過一些方法設定**,在請求傳送(接收)之前加入中間層,將不同的網域名稱轉換成相同的就解決了跨域的問題,客戶端傳送請求時,不直接到伺服器,而是先到**的中間層,在這裡將localhost:8088的這個網域名稱裝換為192.168.0.67:8061,再將請求傳送到伺服器,這樣在伺服器端收到的請求就是使用的192.168.0.67:8061網域名稱,同理,當伺服器返回資料的時候,也是先到**的中間層,將192.168.0.67:8061轉換成localhos:8088;這樣在客戶端也是在相同網域名稱下訪問的了。

jsonp

html**

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

<

/head>

請求<

前端跨域的幾種方法

前段的跨域同源策略是什麼呢?同源指的是三個同源 1,協議相同,網域名稱相同,埠相同,例如這些 協議是http 網域名稱是172.0.0.1 埠號是8080,在這三個都相同的話就是同源,如果不相同,就存在了跨域.一.jsonp跨域請求 首先我們要知道,jsonp跨域的原理是什麼呢,我們的ajax請求會...

java跨域 解決的幾種方法

原文 一 全部介面解決跨域問題 要想解決測試人員的跨域問題,在請求訪問前解決跨域問題 過濾器filter public class corsfilter implements filter override public void dofilter servletrequest req,servle...

前端解決跨域的幾種方式

參考1 通過jsonp跨域 jsonp 只支援get請求 jsonp 的優勢在於支援老式瀏覽器,以及可以向不支援 cors 的 請求資料。2 document.domain iframe跨域 3 location.hash iframe 4 window.name iframe跨域 5 postme...