欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue 請求跨域

林雅南1年前8瀏覽0評論

前后端分離是目前開發趨勢的重要組成部分,Vue 是目前最熱門的前端框架之一,在 Vue 的開發中,涉及到跨域問題,如果不做特殊處理,瀏覽器在請求外部資源的時候會受到 Same-Origin Policy 的限制而無法正常請求。

跨域的原因是:瀏覽器的同源策略,是瀏覽器中的一種安全策略,它規定了不同域之間不能互相訪問各自的資源,這里的“不同域”指的是“協議+域名+端口”的組合。

在 Vue 請求跨域的時候,我們可以采用幾種方式來解決:

1. 服務端修改響應頭

// 服務端代碼
const express = require('express');
const app = express();
app.get('/api/data', (req, res) =>{
// 設置響應頭
res.header('Access-Control-Allow-Origin', '*');
res.json({
code: 0,
message: 'success',
data: {
name: '張三',
age: 18,
},
});
});
app.listen(3000, () =>{
console.log('Server is running at http://localhost:3000');
});

2. 使用代理服務器,將Vue開發的頁面跑在和服務器同一個域名下

// vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
pathRewrite: {
'^/api': '',
},
},
},
},
};

3. 使用 jsonp

// 安裝 jsonp 庫
npm install jsonp --save
// Vue 代碼
import jsonp from 'jsonp';
jsonp('http://localhost:3000/api/data', (err, data) =>{
if (err) {
console.error(err);
} else {
console.log(data);
}
});

4. 使用 WebSocket

// 安裝 socket.io 庫
npm install socket.io --save
// Vue 代碼
import io from 'socket.io-client';
const socket = io('http://localhost:3000');
socket.emit('get data', {}, (data) =>{
console.log(data);
});

5. 使用 CORS(跨域資源共享)

// Vue 代碼
axios.get('http://localhost:3000/api/data', { withCredentials: true })
.then((res) =>console.log(res.data));

以上是解決Vue跨域問題的常用方法,根據實際的項目需求,我們需要選擇合適的方法。