美文网首页
Vue 中使用jsonp来解决跨域问题

Vue 中使用jsonp来解决跨域问题

作者: mark666 | 来源:发表于2021-05-12 16:07 被阅读0次

Vue 中要利用jsonp来解决跨域问题,可以引入vue-jsonp

安装

npm install vue-jsonp

引入

import { VueJsonp } from 'vue-jsonp'
 
// Vue Plugin.
Vue.use(VueJsonp)

这里要特别注意一点,网上很多文章都写着 import VueJsonp from 'vue-jsonp',实际你使用过程中,会报错 undefined,其实我们看源码也可以得知导入方式

使用

具体使用我们可以参考

这里需要特别注意一点,使用文档上也没有说明,如果我们回调的方法名不指定的话,默认是jsonp_,如果服务器返回不一致的话,我们可以指定 callbackName
具体代码示例如下:

this.$jsonp(
        `http://localhost:8081',
        {
          callbackQuery: 'jsonpcallback',
          //指定回调的查询字符串的名称(默认callback),后端可能自定义,比如当前案例约定的是jsonpcallback
          callbackName: 'jsonpFunc' //回调函数方法名称
       }
      ).then(data => {
        console.log(data);
      });

2021-6-10更新

jsonp方法在并发情况下发生报错

Uncaught ReferenceError: jsonp_ is not defined

造成以上错误的原因是使用了相同的jsonpCallback, jsonpCallback请求完成后会删除回调方法,所以当两个jsonp请求使用相同的jsonpCallback时就会造成冲突。

所以解决起来很容易,根据不同的请求设置不通的callbackName 即可

this.$jsonp(
        `http://localhost:8081',
        {
          callbackName: 'jsonpFunc'  + '' "  // 根据不同的请求设置不同标识
       }
      ).then(data => {
        console.log(data);
      });

相关文章

  • Vue 中使用jsonp来解决跨域问题

    Vue 中要利用jsonp来解决跨域问题,可以引入vue-jsonp 安装 引入 这里要特别注意一点,网上很多文章...

  • 使用JSONP解决ajax跨域

    在日常开发中,不免遇到跨域的问题。在这里我们介绍使用Jsonp来解决ajax跨域的问题 什么是跨域? 跨域,指的是...

  • jsonp

    Vue从了解到清晰-Vue2.0中使用vue-jsonp解决跨域问题(看看这篇就够了) 1、执行命令:npm in...

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • 前端跨域请求实现(待整理)

    1.常用的vue的axios实现请求 2.传统项目使用jsonp解决跨域请求和接受问题

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 复习jsonp和promise

    一.jsonp 1.jsonp是跨域访问api,ajax不能跨域 2.在vue中使用jsonp首先要安装jsonp...

  • Vue 项目解决跨域问题

    vue 项目中解决接口跨域的方法 1.简单粗暴直接用jquery 的jsonp 来调用跨域跨域接口 2.如果本地引...

  • axios跨域和配置proxyTable

    使用vue-axios和vue-resource解决vue中调用网易云接口跨域的问题 vue.js学习之 跨域请求...

  • 跨域上传图片并预览

    跨域上传文件 之前解决跨域问题都是使用的JQuery的JSONP类型的Ajax请求,JSONP原理是让服务器把数据...

网友评论

      本文标题:Vue 中使用jsonp来解决跨域问题

      本文链接:https://www.haomeiwen.com/subject/jimadltx.html