前端跨域的幾種處理方式

2022-07-20 13:00:32 字數 1603 閱讀 6010

什麼是跨域?

瀏覽器想伺服器傳送請求,因為ajax只能在同源策略下使用,不能請求不同介面的資料,例如瀏覽器介面8080請求介面3000的資料,是請求不到資料的會報錯,這時就需要跨域來解決跨域就是解決此問題。以下三種方式是我所熟悉的前端跨域請求方式

從建立檔案到訪問的步驟

後台檔案介面為 3000,前端介面為 8080

一、在 cmd 中 輸入 cnpm i -s webpack webpack-cli,搭建乙個前端的工程

建立結果如下

二、在當前資料夾下建立 webpack.config.js預設配置檔案,進行配置。

配置完畢後檔案建立如下:(server.js為後端請求介面檔案)

建立乙個server.js檔案,進行簡單後台介面的編寫,在cmd中 使用 node server.js 就可以啟用後台介面

啟用後台介面 node server.js,在瀏覽器中輸入 顯示:

這時我們的後台介面就基本配置完畢。然後在 index.js 中的進行ajax請求,這時會顯示報錯。

1、使用 webpack 中**的方式的來請求後台介面  

在webpack.config.js配置中寫入紅框中的**,

以 /api 的**方式來實現跨域請求

2、後端 cors 處理的方式,在server.js檔案中加入以下**,這種方式是後端處理,最簡便的方式,不需要前端做任何處理方式就能請求,只需要在後端新增以下**就可以,

3、webpack外掛程式處理的方式,也是中介軟體,在server.js檔案中加入以下**,重新啟動 node server.js,在瀏覽器中啟動會發現同時也請求到了資料

還有jsonp 的請求方式、vue中的axios的請求方式等等,這麼多的跨域方案各有各的好處,沒有最好,只有最適合,根據場景選擇適合自己的方式;

前端跨域的幾種方式

在實際開發中,前端和後端之所以存在跨域的問題,主要是受到了 同源策略 的限制,同源 一般是指 協議 網域名稱 主網域名稱以及子網域名稱 和埠號三者相同,三者中的任何乙個不相同都算作是跨域,不同域之間的相互請求資源就算作是跨域,這樣都是會被限制的 之所以設定同源策略的限制主要是為了避免瀏覽器受到xss...

前端跨域通訊的幾種方式

本文最初發表於,並在github上持續更新前端的系列文章。歡迎在github上關注我,一起入門和高階前端。以下是正文。前端通訊類的問題,主要包括以下內容 同源策略是乙個概念,就一句話。有什麼限制,就三句話。能說出來即可。如果你不準備,估計也就只能說出ajax。ajax在前後端通訊中經常用到。做業務時...

前端解決跨域的幾種方式

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