色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue 請求跨域

林雅南2年前9瀏覽0評論

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

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

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

1. 服務(wù)端修改響應(yīng)頭

// 服務(wù)端代碼
const express = require('express');
const app = express();
app.get('/api/data', (req, res) =>{
// 設(shè)置響應(yīng)頭
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. 使用代理服務(wù)器,將Vue開發(fā)的頁面跑在和服務(wù)器同一個(gè)域名下

// 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跨域問題的常用方法,根據(jù)實(shí)際的項(xiàng)目需求,我們需要選擇合適的方法。