一、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--获取数据的更多相关文章

  1. Vue 获取数据、事件对象、todolist

    vue中在方法里获取data里的msg:this.msg 在微信小程序里this.data.msg 改变data里的msg:this.msg="改变后的msg" 可以通过list. ...

  2. vue 获取数据联动下拉框select ,并解决报Duplicate value found in v-for="...": "". Use track-by="$index" 错误

    公司项目中遇到一个问题,联动下拉框,并且数据是使用vue-resource从后台获取的,格式不利于输出联动下拉框,联动下拉框是第一个下拉框输出一个数组里每一项json的一个text值,从而第二下拉框输 ...

  3. Vue获取数据渲染完成事件

    主要代码是这两坨 this.nextTick(function(){ alert('数据已经更新') }); this.$nextTick(function(){ alert('v-for渲染已经完成 ...

  4. vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: <script type="text/javascri ...

  5. vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

    https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...

  6. Vue获取dom和数据监听

    Vue获取dom对象 在js和jq中我们都能获取dom对象例如 // 获取id=1的div标签 <div id=d1>dom对象</div> // js语法 let ele = ...

  7. vue模拟后端获取数据——json-server与express

    转载自: https://blog.csdn.net/weixin_39728230/article/details/80293892 https://blog.csdn.net/lxkll/arti ...

  8. 使用Vue.js和Axios从第三方API获取数据 — SitePoint

    更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...

  9. VUE通过索引值获取数据不渲染的问题

    问题:vue里面当通过索引值获取数据时,ajax数据成功返回,但是在火狐下不渲染 解决:

  10. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

随机推荐

  1. JS中对象与数组(大括号{}与中括号[])

    一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如:var LangShen = {"Name":"Langshen",&qu ...

  2. 实现私有化(Pimpl) --- QT常见的设计模式

    转载自:http://blog.sina.com.cn/s/blog_667102dd0100wxbi.html 一.遇到的问题 1.隐藏实现 我们在给客户端提供接口的时候只希望能暴露它的接口,而隐藏 ...

  3. GUI常用对话框4

    %普通对话框 dialog %单击时会关闭当前窗口 %自定义 关于对话框 点击确定 关闭 h = dialog( ]); uicontrol( ], ... 'string','确定','Callba ...

  4. Codeforces 841A - Generous Kefa

    题目链接:http://codeforces.com/problemset/problem/841/A One day Kefa found n baloons. For convenience, w ...

  5. Logstash进程杀不掉

    由于ELK磁盘不足,对磁盘进行扩容,重启服务器,重启之后发现自动起来了一个logstash进程,PID一直变,无法杀掉,极其耗费CPU logstash 是通过rpm方式安装的,版本是6.2.2 解决 ...

  6. gets函数

    gets函数    gets函数从标准输入读取一行文本并把它存储在作为参数传递给它的数组中    一行输入由一串字符组成,以一个换行符(newline)结尾    gets函数丢弃换行符,并在该行的末 ...

  7. 深入理解softmax函数

    Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值.Softmax模型可以用来给不同的对象分配概率.即使在之后,我们训练更加精细 ...

  8. Golang框架beego电影网爬虫小试牛刀

    学习了一段时间golang,又参考课程学习了beego开发网站爬虫,项目的目录结构是: 采集的目标是豆瓣网电影,入口地址是:https://movie.douban.com/subject/19008 ...

  9. java中线程的停止以及LockSupport工具类

    看jstack输出的时候,可以发现很多状态都是TIMED_WAITING(parking),如下所示: "http-bio-8080-exec-16" #70 daemon pri ...

  10. 01:jQuery的下拉选select2插件用法

    1.1 select2插件基本使用 1.下载select2插件 1. 下载地址:https://github.com/select2/select2 2.官网地址:https://select2.or ...