vue에서 jsonp를 사용하여 전역 요청 인터페이스 작업
여기에서 우리가 사용하는 것은 제3자 플러그인 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 파일은 인터페이스 데이터를 크로스 필드에서 가져옵니다.
// jsonp
import 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 interceptor
axios.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;
메인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를 사용하여 전역 요청 인터페이스 조작을 하는 것이 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.