1. 程式人生 > >01.在vue中通過 JSONP 方式來跨域

01.在vue中通過 JSONP 方式來跨域

cas ech bsp import ret pre new res end

 1 //1.引入 : 在main.js 中引入該文件即可
 2 //2.使用: axios.jsonp(‘地址‘).then(res => { 
 3 //             console.log(res)
 4 //           }
 5     
 6 
 7 import axios from ‘axios‘
 8 
 9 axios.jsonp = (url, params) => {
10   // 1 根據 url 和params 拼接請求地址
11   url += ‘?‘
12   for (let k in params) {
13     url += k + ‘=‘ + params[k] + ‘&‘
14
} 15 // 2 拼接 callback 16 const callbackName = ‘itcast_‘ + (new Date() - 0) 17 url += ‘callback=‘ + callbackName 18 // 3 動態創建script標簽 19 const script = document.createElement(‘script‘) 20 script.src = url 21 document.head.appendChild(script) 22 return new Promise((resolve, reject) => {
23 // 給window添加一個函數,就相當於全局函數 24 window[callbackName] = function (data) { 25 // data 就是 JSONP接口返回的數據 26 // 調用resolve獲取數據 27 resolve(data) 28 // 刪除掉添加給window的屬性 29 delete window[callbackName] 30 // 移除 script 標簽 31 document.head.removeChild(script) 32 }
33 }) 34 }

01.在vue中通過 JSONP 方式來跨域