成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue 3.0 + Vite +Axios 出現跨域問題如何解決

開發 前端
在 Vue 3.0 + Vite + Axios 中,如果接口請求的地址與前端代碼不在同一域下,就會出現跨域問題。這種情況下,可以采取以下幾種簡單的解決辦法:

一、使用代理

在 Vite 的配置文件中,可以通過 proxy 選項來配置代理,使得前端代碼與接口請求在同一域下。例如:

// vite.config.js
export default {
// ...
server: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
}
}

這個例子中,將所有以 /api 開頭的請求代理到 ??http://localhost:3000??,同時需要設置 changeOrigin 為 true,表示更改源地址,這樣才能避免跨域問題。

二、設置 CORS

如果你無法使用代理,也可以在接口的響應頭中設置 CORS(跨域資源共享)。在后端代碼中設置Access-Control-Allow-Origin 和其他相關的響應頭,以允許跨域請求。例如,在 Node.js 中可以這樣設置:

app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
next();
});

三、使用 JSONP

JSONP 是一種跨域解決方案,可以通過添加一個 <script> 標簽來發送跨域請求。在 Vue 3.0 + Axios 中,可以使用 axios-jsonp 插件來實現 JSONP 跨域。例如:

import axiosJsonp from 'axios-jsonp';

axios({
url: 'http://example.com/api',
adapter: axiosJsonp,
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});

這里通過設置 adapter 選項來指定使用 axios-jsonp 插件,然后使用 axios 發送請求即可。

四、使用跨域資源共享插件

如果你無法在后端代碼中設置 CORS,也可以使用跨域資源共享插件來解決跨域問題。例如,在 Vue 3.0 + Axios 中,可以使用 cors 和 cors-anywhere 等插件。例如:

import axios from 'axios';
import cors from 'cors-anywhere';

const proxyUrl = 'https://cors-anywhere.herokuapp.com/';
const apiUrl = 'http://example.com/api';

const axiosInstance = axios.create({
baseURL: proxyUrl + apiUrl,
});

cors.createServer().listen(8080, () => {
console.log('CORS Anywhere server running on port 8080');
});

axiosInstance.get('/data').then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});

這里通過在前端代碼中創建一個跨域資源共享服務器,并將接口請求通過代理轉發到這個服務器,從而避免了跨域問題。這種方案需要在前端代碼和后端代碼中都進行修改,可能會比較麻煩,不過如果其他方案都無法使用的時候,可以考慮使用這種方案。

五、在接口服務器中添加 CORS 配置

如果你有權限修改接口服務器的配置,也可以在服務器中添加 CORS 配置來解決跨域問題。具體的配置方式因服務器不同而異,可以參考服務器的文檔進行配置。例如,在 Nginx 中可以這樣配置:

location /api {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
proxy_pass http://example.com/api;
}

這里將所有以 /api 開頭的請求代理到 http://example.com/api,并在響應頭中添加 CORS 相關的配置。

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-06-06 13:05:15

前端跨域CORS

2024-10-29 16:41:24

SpringBoot跨域Java

2022-09-07 07:05:25

跨域問題安全架構

2022-02-22 11:54:05

跨域項目前后端

2022-03-11 10:01:47

開發跨域技術

2023-02-15 07:03:41

跨域問題面試安全

2022-10-13 14:11:29

瀏覽器域名端口

2017-08-20 12:49:59

瀏覽器跨域服務器

2020-12-31 08:14:39

VueAxiosJavaScript

2025-01-02 09:48:52

JVMCARD_元素

2012-09-05 11:09:15

SELinux操作系統

2009-07-06 18:53:52

ESXESX主機VMware

2009-02-18 09:30:10

AJAX跨域XML

2020-06-01 20:27:26

Windows 10Windows電腦藍屏

2022-09-06 10:26:38

前后端分離Vue跨域

2024-12-02 14:30:20

2024-02-27 08:14:51

Nginx跨域服務

2010-04-29 17:46:31

Oracle死鎖

2012-03-27 15:23:15

JSONPAJAX

2009-05-21 14:47:38

WEB開發JsonAjax
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 久久综合九色综合欧美狠狠 | 黄色福利 | 男人久久天堂 | 免费xxxx大片国产在线 | 成人免费大片黄在线播放 | 日韩免费高清视频 | 美女一级a毛片免费观看97 | 免费播放一级片 | 亚洲一区黄色 | 精品福利在线 | 91久久精品国产 | 免费色网址 | 很黄很污的网站 | 天天爽综合网 | 三区四区在线观看 | 中文日韩在线 | www.9191.com| 欧美在线国产精品 | 中文字幕一区二区三区乱码在线 | 狠狠干2020 | 国产精品久久久久久福利一牛影视 | 日韩欧美在线观看 | 亚洲一二三视频 | 亚欧精品| 日韩一级免费电影 | 波霸ol一区二区 | 精品久久久久久亚洲精品 | 日韩一区欧美一区 | 天天玩天天干天天操 | 亚洲精品国产综合区久久久久久久 | 一区二区三区四区电影 | 欧美精品成人一区二区三区四区 | 日本在线视频中文字幕 | 黄视频网站在线 | 久久久久久久久国产精品 | 欧美日韩在线视频一区二区 | 欧美精品被 | 91精品国产综合久久久久久丝袜 | 亚洲精品一区二区三区蜜桃久 | 狠狠久|