Vue--获取数据
一、Jsonp抓取数据
用 npm 安装 jsonp
npm install jsonp
创建 jsonp.js
import originJsonp from 'jsonp'
export default function jsonp(url, data, option) {
url += (url.indexOf('?') < ? '?' : '&') + 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() : ''
}
在 api 创建 config.js
export const commonParams = {
//Query string parameters
//所抓取网页api参数
g_tk: ,
inCharset: 'utf-8',
outCharset: 'utf-8',
notice: ,
format: 'jsonp'
} export const options = {
param: 'jsonpCallback'
} export const ERR_OK =
在 api的data.js 里导入 jsonp
import jsonp from 'common/js/jsonp'
import{commonParams , options} from './config' export function getData(){
const url = 'api数据的地址链接' const data = Object.assign({},commonParams,{
//Query string parameters
platform: 'h5',
uin: ,
needNewCode:
}) return jsonp(url, data, options)
}
在 data.vue 页面的 script 引用 getData()
<script type="text/ecmascript-6">
import { getData} from "api/data"
import { ERR_OK } from "api/config" export default {
created() {
this._getData()
},
methods: {
_getData() {
getData().then((res) => {
if (res.code === ERR_OK) {
console.log(res.data.slider)
}
})
}
}
</script>
二、Axios接口代理抓取数据
用 npm 安装 axios 以及 express
npm install axios
npm install express
在 build / webpack.dev.conf.js 导入 axios 以及 express
const axios = require('axios')
const express = require('express')
const app = express()
const apiRoutes = express.Router()
app.use('/api', apiRoutes);
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
// 在这里添加一个before方法
before(apiRoutes) {
apiRoutes.get('/api/getDiscList', function (req, res) {
const url = 'api数据的地址链接';
axios.get(url, {
headers: {
referer: '配置api地址referer',
host: '配置api地址host'
},
params: req.query
}).then((response) => {
//将数据返回给前端
res.json(response.data)
}).catch((e) => {
console.log(e);
})
});
}
在 data.js 导入 axios
import axios from 'axios'
export function getDataList(){
const url = '/api/getDataList'
const data = Object.assign({},commonParams,{
//Query string parameters
//所抓取网页api参数
platform: 'yqq',
hostUin: ,
sin: ,
ein: ,
sortId: ,
needNewCode: ,
categoryId: ,
rnd: Math.random(),
format: 'json'
})
return axios.get(url, {
params: data
}).then((res) => {
return Promise.resolve(res.data)
})
}
在 data.vue 页面的 script 引用 getDataList()
<script type="text/ecmascript-6">
import { getDataList } from "api/recommend"
import { ERR_OK } from "api/config" export default {
created() {
this._getDataList()
},
methods: {
_getDataList(){
getDataList().then((res) => {
if(res.code === ERR_OK){
console.log(res.data.list)
}
})
}
}
</script>
Vue--获取数据的更多相关文章
- Vue 获取数据、事件对象、todolist
vue中在方法里获取data里的msg:this.msg 在微信小程序里this.data.msg 改变data里的msg:this.msg="改变后的msg" 可以通过list. ...
- vue 获取数据联动下拉框select ,并解决报Duplicate value found in v-for="...": "". Use track-by="$index" 错误
公司项目中遇到一个问题,联动下拉框,并且数据是使用vue-resource从后台获取的,格式不利于输出联动下拉框,联动下拉框是第一个下拉框输出一个数组里每一项json的一个text值,从而第二下拉框输 ...
- Vue获取数据渲染完成事件
主要代码是这两坨 this.nextTick(function(){ alert('数据已经更新') }); this.$nextTick(function(){ alert('v-for渲染已经完成 ...
- vue 中使用 AJAX获取数据的方法
在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: <script type="text/javascri ...
- vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...
- Vue获取dom和数据监听
Vue获取dom对象 在js和jq中我们都能获取dom对象例如 // 获取id=1的div标签 <div id=d1>dom对象</div> // js语法 let ele = ...
- vue模拟后端获取数据——json-server与express
转载自: https://blog.csdn.net/weixin_39728230/article/details/80293892 https://blog.csdn.net/lxkll/arti ...
- 使用Vue.js和Axios从第三方API获取数据 — SitePoint
更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...
- VUE通过索引值获取数据不渲染的问题
问题:vue里面当通过索引值获取数据时,ajax数据成功返回,但是在火狐下不渲染 解决:
- 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??
在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...
随机推荐
- jumpserver堡垒机安装
1. 下载jumpserver cd /opt wget https://github.com/jumpserver/jumpserver/archive/master.zip unzip maste ...
- 巧用ELK快速实现网站流量监控可视化
前言 本文可能不会详细记录每一步实现的过程,但一定程度上可以引领小伙伴走向更开阔的视野,串联每个环节,呈现予你不一样的效果. 业务规模 8个平台 100+台服务器 10+个集群分组 微服务600+ 用 ...
- Python进阶【第十一篇】模块(下)之常用模块
内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳 ...
- Kattis之旅——Inverse Factorial
题目意思就是已知n的阶乘,求n. 当输入的阶乘小于10位数的时候,我们可以用long long将字符串转化成数字,直接计算. 而当输入的阶乘很大的时候,我们就可以利用位数去大概的估计n. //Asim ...
- 在nginx的http模块下面,一个server就可以看做一个站点,配置形式大概是这样的:
http { index index.php index.htm index.html; server { server_name www.site1.com; location / { # [... ...
- selenium得到弹出窗口
# 获取当前的页面窗口 first_handle = brower.current_window_handle handles = brower.window_handles for i in han ...
- Mysql去掉html标签函数
函数 SET GLOBAL log_bin_trust_function_creators=; DROP FUNCTION IF EXISTS fnStripTags; DELIMITER | CRE ...
- Apache正向代理和反向代理
一.正向代理 先说一正向代理(Forward Proxy),通常普通用户使用的比较多的,是正向代理.也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网 ...
- Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源 在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等.今天就给大家介绍一个 Spri ...
- git-tag 标签相关操作
标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签 打标签 gi ...