vue 解決跨域的問題

(1).什么是跨域

跨域:由于瀏覽器同源策略,凡是發送請求url的協議、域名、端口三者之間任意一個與當前頁面地址不同即為跨域。存在跨域的情況:

網絡協議不同,如http協議訪問https協議。

端口不同,如80端口訪問8080端口。

域名不同,如qianduanblog.com訪問baidu.com。

子域名不同,如abc.qianduanblog.com訪問def.qianduanblog.com。

域名和域名對應ip,如www.a.com訪問20.205.28.90.

下面是項目使用vue-cli腳手架搭建

使用http-proxy-middleware 代理解決跨域問題

例如請求的url:“http://f.apiplus.cn/bj11x5.json

1、打開config/index.js,在proxyTable中添寫如下代碼:

proxyTable: {

? '/api': {? //使用"/api"來代替"http://f.apiplus.c"

? ? target: 'http://f.apiplus.cn', //源地址

? ? changeOrigin: true, //是否跨域

? ? pathRewrite: {

? ? ? '^/api': 'http://f.apiplus.cn' //路徑重寫

? ? ? }

? }

}

2、使用axios請求數據時直接使用“/api”:

getData () {

axios.get('/api/bj11x5.json', function (res) {

? console.log(res)

})

通過這中方法去解決跨域,打包部署時還按這種方法會出問題。解決方法如下:

let serverUrl = '/api/'? //本地調試時

// let serverUrl = 'http://f.apiplus.cn/'? //打包部署上線時

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是跨域 跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實...
    他方l閱讀 1,071評論 0 2
  • 注:文章太長了,因此分為兩段,但第一部分比較常用也更重要,可重點掌握。跨域指的是瀏覽器不能執行其它網站的腳本,由于...
    AizawaSayo閱讀 3,855評論 0 4
  • 跨域在接口調用的時候經常會出現,它是基于什么原因產生的呢? 說到跨域就必須提到同源策略。什么是同源策略呢? 同源策...
    嘭嘭嘭鵬閱讀 1,069評論 0 1
  • 1. 什么是跨域 跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScri...
    cbw100閱讀 6,363評論 2 86
  • 題目1.什么是同源策略? 同源策略(Same origin Policy): 瀏覽器出于安全方面的考慮,只允許與本...
    FLYSASA閱讀 1,744評論 0 6