公司临时要支撑河南的一个项目,作一个单点登陆的功能。 简单来讲,就是如下👇👇👇3步
发送jsonp请求,axios官方貌似并不支持,因此排除🙅🏻♀️ 通过展转Google,发现了*vue-jsonp*这个插件
官方地址:vue-jsonpjavascript
npm install vue-jsonp --save-dev
import Vue from 'vue' import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp)
<script> export default { data() {...}, created() { // this.getJson() }, mounted() { window.jsonpCallback = (data) => { console.log(data.token) // 调用获取后端token的方法 this.getToken(data.token) } }, methods: { getJson() { this.$jsonp(this.url, { callbackQuery: "callbackParam", callbackName: "jsonpCallback" }) .then((json) => { // 返回的jsonp数据不会放这里,而是在 window.jsonpCallback console.log(json) }) }, getToken(token) { this.axios.post('/xxxurl') .then((res) => { // success 以后就正常登录了 }) } } } </script>
是否是so easy 🤡可是真的整了一夜才整出来,谁能知道jsonp的返回值在then里返回不了呢,打印也打印不出来。。。前端
就酱。see youvue