VUE2.0中Jsonp的使用方法

1.准备工作

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

1.1 webpack.dev.conf.js

1.JSONP的用途和原理

const portfinder = require(‘portfinder')的下面加上以下代码

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

const express = require('express')
const app = express()
var appData = require('../data.json')//加载本地数据文件的路径
var leftMenu = appData.leftMenu //获取对应的本地数据
var 数据名称 = appData.选择项
var apiRoutes = express.Router()
app.use('/api', apiRoutes)

ca88,2.JSONP的使用方法

找到devServer,在里面加入一下代码

2.1 引入github的jsonp

before(app) {
 app.get('/api/leftmenu', (req, res) => {
  res.json({
   errno: 0,
   data: leftMenu
  })//接口返回json数据,上面配置的数据seller就赋值给data请求后调用
 }),
 app.get('/api/数据', (req, res) => {
  res.json({
   errno: 0,
   data: 数据(与上面数据名称对应)
  })
 })
}

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

2.在使用的组件里

"jsonp": "^0.2.1"

created(){
  this.$http.get('api/leftmenu').then((response) => {
   console.log(response)
   this.leftMenu = response.body.data  //数据位置
  })
} 
data(){
  return{
    leftMenu:[];  
  }
}

ca88 1

总结

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

以上所述是小编给大家介绍的Vue2.5通过json文件读取数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

npm install 
 npm run dev

您可能感兴趣的文章:

  • vue.js学习笔记:如何加载本地json文件
  • 详解通过JSON数据使用VUE.JS
  • 详解vue渲染从后台获取的json数据
  • 详解vue
    模拟后台数据(加载本地json文件)调试
  • Vue导出json数据到Excel电子表格的示例
  • 详解vue中使用express+fetch获取本地json文件
  • vue配置请求本地json数据的方法
  • Vue-cli项目获取本地json文件数据的实例
  • VUE2.0中Jsonp的使用方法
  • vue实现引入本地json的方法分析

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) : ''
}

目录结构如下:

ca88 2

2.3 jsonp.js的API调用

发表评论

电子邮件地址不会被公开。 必填项已用*标注