国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

在vue中使用jsonp進行跨域請求接口操作

瀏覽:73日期:2022-11-09 15:39:09

前言:

這里我們使用的是第三方插件jsonp。

github網址:https://github.com/webmodules/jsonp

1、安裝

npm install jsonp -S

2、引入

一般新建一個js文件來引入原始jsonp插件,然后對原始插件進行封裝,對跨域接口參數的拼接,封裝好這個jsonp文件后export出去,之后在哪里用到就再在那里import。

1.新建jsonp.js文件來封裝原始jsonp插件

// 引入原始jsonp插件import originJsonp from ’jsonp’/* 封裝原jsonp插件,返回promise對象 url: 請求地址 data:請求的json參數 option:其他json參數,默認直接寫空對象即可*/export default function jsonp (url, data, option) { url += (url.indexOf(’?’) < 0 ? ’?’ : ’&’) + param(data) return new Promise((resolve, reject) => { // originJsonp中的參數說明可以到前言中的github中查看 originJsonp(url, option, (err, data) => { if (!err) { resolve(data) } else { reject(err) } }) })}/* 封裝url參數的拼接 */function param (data) { let url = ’’ for (var k in data) { let value = data[k] !== undefined ? data[k] : ’’ // 防止參數為中文時出現亂碼,把字符串作為 URI 組件進行編碼 url += `&${k}=${encodeURIComponent(value)}` } return url ? url.substring(1) : ’’}

3、使用

可以在專門請求接口的js文件夾中新建一個getCurrentCity.js文件來跨域獲取接口數據。

// 引入封裝好的jsonpimport jsonp from ’common/js/jsonp.js’// 假設這里為跨域請求當前城市的接口export function getCurrentCity () { // 接口地址 let url = ’https://api.map.baidu.com’ // 所需參數 let datas = { ’qt’: ’dec’, ’ie’: ’utf-8’, ’oue’: 1, ’fromproduct’: ’jsapi’, ’res’: ’api’, ’ak’: ’QWilijLzYd6pCmTrHilAeWjbG41zMiXc’ } return jsonp(url, datas, {})}

4、最后在vue組件中取到接口數據

import {getCurrentCity} from ’common/apis/getCurrentCity.js’export default { methods:{ _getCurrentCity () { // 在這里就可以獲取到當前城市的接口數據了 getCityCurrent().then((res) => { // 打印出獲取到的數據 console.log(res) }).catch((err) => { console.log(err) }) } }, mounted () { this._getCurrentCity() }}

補充知識:Vue中關于axios和jsonp的封裝

我就廢話不多說了,大家還是直接看代碼吧~

import qs from ’qs’import axios from ’axios’ //攔截器axios.interceptors.request.use(function (config) { console.log(’正在發送請求哦...’)//添加loading效果 return config;}, function (error) { return Promise.reject(error);}); // Add a response interceptoraxios.interceptors.response.use(function (response) { console.log(’請求成功啦...’) return response;}, function (error) { return Promise.reject(error);}); const ajax={post:function(url,data={}){return new Promise((resolve,reject)=>{axios.post(url,qs.stringify(data)).then(function(res){resolve(res.data)}).catch(function(err){reject(err)})})},get:function(url,data={}){return new Promise((resolve,reject)=>{axios.get(url,{params:qs.stringify(data)}).then(function(res){resolve(res.data)}).catch(function(err){reject(err)})})},}export default ajax;

在main.js中

import ajax from ’./common/api/index.js’

Vue.prototype.$post=ajax.post Vue.prototype.$get=ajax.get

jsonp

import originJSONP from ’jsonp’/*jsonp(url,option,callbackFn){name:1,age:20}www.aaa.com/? */export default function(url,data,option){ url+=(url.indexOf(’?’)<0 ? ’?’ : ’&’ )+param(data); return new Promise(function(resolve,reject){ originJSONP(url,option,function(err,res){ if(!err){ resolve(res); }else{ reject(err) } }) })}/*{name=’aa’,age=20}&name=aa&age=20*/function param(data){ let url=’’; for(let key in data){ let item =data[key]!==undefined ? data[key] : ’’; url+=`&${key}=${encodeURIComponent(item)}` } return url ? url:’’; }

以上這篇在vue中使用jsonp進行跨域請求接口操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 97视频在线观看免费播放 | avav男人天堂 | 91精品国产91热久久p | 精品玖玖玖视频在线观看 | 成人免费精品视频 | 日韩精品在线看 | 一级毛片免费不卡夜夜欢 | 午夜精品在线 | 黄 色 成 年 人小说 | 国产欧美综合一区二区 | 亚洲人的天堂男人爽爽爽 | 久久精品18 | 亚洲精品国自产拍在线观看 | 亚洲精品字幕一区二区三区 | 国产夫妇肉麻对白 | 久草国产在线播放 | 尤物蜜芽福利国产污在线观看 | 欧美三级黄 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 国产真实乱子伦精品视手机观看 | 中国hd高清╳xxx | 国产成在线观看免费视频 | 亚洲综合网在线观看首页 | 国产成人精品区在线观看 | 狠狠色狠狠色狠狠五月ady | 国产精品18久久久久久小说 | 69av亚洲| 久久久久免费精品国产 | 亚洲香蕉一区二区三区在线观看 | 三级黄色片网址 | 中国三级网站 | yp国产在线观看 | 91资源在线 | 国产激情自拍 | 欧美精品专区免费观看 | 91精品国产9l久久久久 | 免费观看欧美一级牲片一 | 久久久免费视频观看 | 日韩永久在线观看免费视频 | 国产精品亚洲片在线观看不卡 | 国产a级三级三级三级中国 国产a级特黄的片子视频 |