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 相关文章推荐
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Feb 09 Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
JS读取XML文件示例代码
Nov 15 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
用javascript实现倒计时效果
Feb 09 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
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自动识别字符集并完成转码详解
2013/08/02 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
一起来写段JS drag拖动代码
2010/12/09 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
Python转换HTML到Text纯文本的方法
2015/01/15 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
python如何从键盘获取输入实例
2020/06/18 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
运动会广播稿500字
2014/01/28 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis