日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

前端vue框架的跨域处理方法

發布時間:2024/9/21 vue 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端vue框架的跨域处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、jsonp跨域 npm install jsonp

然后創建一個jsonp.js 來使用jsonp import oringinJSONP from 'jsonp'

export default function jsonp(url, data, option) { url += (url.indexOf('?') < 0 ? '?' : '&') + param(data) //返回一個promise對象 return new Promise((resolve, reject) => { //resolve成功 reject失敗 oringinJSONP( url, option, (err, data) => { if( !err ) { resolve(data); } else { reject(err) } }) }) }

function param( data ) { //拼接參數 let url = ''; for( var k in data) { let value = data[k] !== undefined ? data[k] : ''; url += &${k}=${encodeURIComponent(value)} } return url ? url.substring(1) : '' }

然后,創建一個方法使用上面的jsonp()

import jsonp from 'common/js/jsonp' import {commonParams, options} from './config' export function getRecommend() { //暴露一個方法 讓人調用 const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg' //Object.assign()合并對象鍵和值 const data = Object.assign( {}, commonParams, { uin:0, platform:'h5', needNewCode:1 }) return jsonp(url, data, options) } 最后使用 import { getRecommend, songsList } from 'api/recommend'; getRecommend().then( (res) => { if(res.code === ERR_OK) { this.recommonds = res.data.slider; } });

二、使用axios進行跨域處理 在dev-server.js中, const app = express()

var axios = require('axios') //引入axios var apiRoutes = express.Router()

apiRoutes.get('/songsList', function( req, res ) { var url = "https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg"; axios.get(url, { headers: { referer: 'https://m.y.qq.com/', host: 'c.y.qq.com' }, params: req.query }).then( (response) => { res.json(response.data) }).catch( (e) => { console.log(e); }) });

app.use('/api', apiRoutes);

然后在目標js中 function songsList() { const url = '/api/songsList' const data = Object.assign( {}, commonParams, { uin:0, platform:'h5', needNewCode:1, format: 'json' }) return axios.get(url, { params: data }).then((res) => { return Promise.resolve(res.data) }) } 然后執行songsList(),這種類似與欺詐的方法修改了請求頭的host 和 referer,這樣可以繞過同源策略的檢測,進而達到跨域獲取數據的效果。

總結

以上是生活随笔為你收集整理的前端vue框架的跨域处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。