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 相关文章推荐
JS判定是否原生方法
Jul 22 Javascript
一个JavaScript用逗号分割字符串实例
Sep 22 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
JavaScript实现添加及删除事件的方法小结
Aug 04 Javascript
jQuery中的Deferred和promise 的区别
Apr 03 Javascript
js实现按钮控制带有停顿效果的图片滚动
Aug 30 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
May 01 Javascript
JavaScript实现新年倒计时效果
Nov 17 Javascript
Django+Vue实现WebSocket连接的示例代码
May 28 Javascript
微信小程序顶部导航栏可滑动并选中放大
Dec 05 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 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 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
Python 中 list 的各项操作技巧
2017/04/13 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
python 修改本地网络配置的方法
2019/08/14 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
自荐信的禁忌和要点
2013/10/15 职场文书
会计专业推荐信
2013/10/29 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
道路交通安全实施方案
2014/03/12 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
学校运动会霸气口号
2014/06/07 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
合作协议书范本
2014/10/25 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python