VUE2.0中Jsonp的使用方法


Posted in Javascript onMay 22, 2018

本文主要介绍的是在VUE2.0Jsonp的使用方法,通过github引入jsonp和promise封装,实现跨域获取数据。

1.JSONP的用途和原理

使用JSONP主要是目的通过动态创建Script,动态拼接url,进而抓取数据,实现跨域。确切地说,AJAX请求由于同源影响,是不允许进行跨域请求的,而Script标签src属性中的链接却可以访问跨域的js脚本,利用这一特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的JS代码,在src属性中进行调用,实现跨域。

2.JSONP的使用方法

2.1 引入github的jsonp

打开项目>package.json>在”dependencies”下添加代码

"jsonp": "^0.2.1"

VUE2.0中Jsonp的使用方法

如图所示,然后执行安装cmd指令,并重新运行项目

npm install 
 npm run dev

2.2 封装jsonp.js

import originJSONP from 'jsonp'
export default function jsonp(url, data, option) {
 url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
 return new Promise((resolve, reject) => {
 originJSONP(url, option, (err, data) => {
  if (!err) {
  resolve(data)
  } else {
  reject(err)
  }
 })
 })
}
function param(data) {
 let url = ''
 for (var k in data) {
 let value = data[k] !== undefined ? data[k] : ''
 url += `&${k}=${encodeURIComponent(value)}`
 }
 // 删除第一个&
 return url ? url.substring(1) : ''
}

目录结构如下:

VUE2.0中Jsonp的使用方法

2.3 jsonp.js的API调用

在src的文件夹下创建api文件夹,用于储存api调用的js,新建config.js和recommend.js两个文件。

config.js
export const commonParams = {
 g_tK: 5381,
 inCharset: 'utf-8',
 outCharset: 'utf-8',
 notice: 0,
 format: 'jsonp'
}
export const options = {
 param: 'jsonpCallback'
}
export const ERR_OK = 0
recommend.js
import jsonp from 'common/js/jsonp'
import {commonParams, options} from './config'
export function getRecommend() {
 const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg' //此处的url可以自行修改,本文是qq音乐链接
 const data = Object.assign({}, commonParams, {
 platform: 'h5',
 uin: 0,
 needNewCode: 1
 })
 return jsonp(url, data, options)
}

目录结构如下:

VUE2.0中Jsonp的使用方法

2.4 recommend.vue文件调用

在项目目录下的src>components>recommend>对应的文件.vue

recommend.vue

<template>
 <div class="recommend">
  recommend
 </div>
</template>
<script type="text/ecmascript-6">
import {getRecommend} from 'api/recommend'
import {ERR_OK} from 'api/config'
export default {
 name: 'recommend',
 created() {
 this._getRecommend()
 },
 methods: {
 _getRecommend() {
  getRecommend().then((res) => {
  if (res.code === ERR_OK) {
   console.log(res.data.slider)
  }
  })
 }
 }
}
</script>

2.5 页面jsonp请求成功结果

VUE2.0中Jsonp的使用方法

以上为vue2.0 jsonp简单使用方式,实例下载链接

总结

以上所述是小编给大家介绍的VUE2.0中Jsonp的使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 选中文字并响应获取的实现代码
Aug 28 Javascript
使用jquery实现简单的ajax
Jul 08 Javascript
js替代copy(示例代码)
Nov 27 Javascript
JS中捕获console.log()输出的方法
Apr 16 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
Jquery实现纵向横向菜单
Jan 24 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
js编写简单的计时器功能
Jul 15 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 Javascript
js实现随机点名程序
Sep 17 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
mpvue构建小程序的方法(步骤+地址)
May 22 #Javascript
基于mpvue的小程序项目搭建的步骤
May 22 #Javascript
安装vue-cli的简易过程
May 22 #Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 #Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 #Javascript
Vue页面骨架屏的实现方法
May 22 #Javascript
Angular网络请求的封装方法
May 22 #Javascript
You might like
PHP 手机归属地查询 api
2010/02/08 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
smarty自定义函数用法示例
2016/05/20 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python使用webbrowser浏览指定url的方法
2015/04/04 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
keras导入weights方式
2020/06/12 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
美术毕业生求职信
2014/02/25 职场文书
专项法律服务方案
2014/06/11 职场文书
实验室的标语
2014/06/20 职场文书
毕业生学校组织意见
2015/06/04 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
人民币符号
2022/02/17 杂记
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript