vue.config.js 中跨域 proxy 的原理
在討論 proxy
跨域的原理時,我們要先說說為什麼會出現 跨域問題
為什麼會出現跨域問題
跨域主要是出於瀏覽器的同源策略限制。
同源策略是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。
所謂同源(即指在同一個域)就是兩個頁面具有相同的協議,主機和埠號
什麼是跨域
當一個請求 url
的 協議、域名、埠 三者之間任意一個與當前頁面url不同即為跨域
當前頁面url | 被請求頁面url | 是否跨域 | 原因 |
---|---|---|---|
http://www.test.com/ | http://www.test.com/index.html | 否 | 同源(協議、域名、埠號相同) |
http://www.test.com/ | https://www.test.com/index.html | 跨域 | 協議不同(http/https) |
http://www.test.com/ | http://www.baidu.com/ | 跨域 | 主域名不同(test/baidu) |
http://www.test.com/ | http://blog.test.com/ | 跨域 | 子域名不同(www/blog) |
http://www.test.com:8080/ | http://www.test.com:7001/ | 跨域 | 埠號不同(8080/7001) |
當我們請求一個介面的時候,出現如:Access-Control-Allow-Origin 字眼的時候說明請求跨域了
vue 中 配置 proxy
vue的轉發機制proxyTable
,proxyTable
代理功能可以實現轉發機制,
vue.config.js
(點選我去VUE
官網檢視devserver-proxy
的配置 )
module.exports={
devServer: {
//設定完成後重啟npm
proxy: {
//設定代理
"/devapi": {
target: "http://0.0.0.0:3000", // 介面的域名
changeOrigin: true,
ws:true,
pathRewrite: {
"^/devapi": "" //萬用字元
}
}
},
},
}
好了,步入正題,proxy
是怎麼實現的
首先瀏覽器是禁止跨域的,但是服務端不禁止,在本地執行
npm run dev
等命令時實際上是用node
執行了一個伺服器,因此proxyTable
實際上是將請求發給自己的伺服器,再由伺服器轉發給後臺伺服器,做了一層代理。vue
的proxyTable用的是
http-proxy-middleware`中介軟體, 因此不會出現跨域問題。
相關文章
- 說說webpack proxy工作原理?為什麼能解決跨域?Web跨域
- proxy 跨域配置, 針對有axios的baseURL跨域iOS
- 跨域問題及Umi中使用proxy代理解決跨域問題跨域
- node跨域轉發 express+http-proxy-middleware跨域ExpressHTTP
- 前端react-umi-dev-----------本地proxy跨域代理配置前端Reactdev跨域
- 【徹底搞懂】vite proxy如何解決跨域問題Vite跨域
- JSONP 跨域原理及實現JSON跨域
- 搞懂:前端跨域問題JS解決跨域問題VUE代理解決跨域問題原理前端跨域JSVue
- 多種跨域方式實現原理跨域
- 九種跨域方式實現原理跨域
- JS中的跨域問題JS跨域
- 跨域問題(普通跨域和springsecurity跨域)跨域SpringGse
- Laravel 中跨域問題Laravel跨域
- http-proxy-middleware外掛解決開發中跨域、鑑權、圖片防盜鏈問題HTTP跨域
- 九種跨域方式實現原理(完整版)跨域
- JavaScript 跨域訪問(API介面)實現原理分析JavaScript跨域API
- 跨域跨域
- Nginx的跨域配置Nginx跨域
- kube-proxy IPVS 模式的工作原理模式
- 【Go】Golang實現gRPC的Proxy的原理GolangRPC
- Tomcat跨域Tomcat跨域
- 跨域CORS跨域CORS
- 前端跨域前端跨域
- nuxt跨域UX跨域
- [SpringBoot] 跨域Spring Boot跨域
- HTTP跨域HTTP跨域
- Vue跨域Vue跨域
- django 跨域Django跨域
- CORS跨域CORS跨域
- SAP UI5 本地開發如何透過 http-proxy 解決跨域問題UIHTTP跨域
- 跨域共享CORS詳解及Gin配置跨域跨域CORS
- 跨域的那點事跨域
- vue中proxyTable反向代理進行跨域Vue跨域
- 跨域攻擊分析和防禦(中)跨域
- 一篇搞定面試中的跨域問題面試跨域
- Spring Boot中的跨域資源共享(CORS)處理Spring Boot跨域CORS
- Vue 跨域問題解決辦法 Vue 配置防止跨域 nginx 重定向防止跨域Vue跨域Nginx
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON