一、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. hud1007 Quoit Design

    #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> # ...

  2. 需求中碰到的简单Map集合 key相同合并 value的思路

    从两个接口获取到了数据Map集合, 但是要展示到同一页面 根据了播控人为key 将两个返回的进行遍历 将他们存在新的map里面 只有单个key value 就存为(MAP<object,obje ...

  3. linux 查找locate find

    1.locate locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快 ...

  4. msyql -3m架构详解

    我们先来回顾一下mmm的概念,它是一套灵活的基于perl编写的脚本程序,自己本身不提供mysql服务的功能,它是用来对mysql replication 进行监控和故障迁移,并能管理mysql Mas ...

  5. ELK学习笔记之Grok patterns正则匹配

    https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns USERNA ...

  6. 11: python递归

    1.1 递归讲解 1.定义 1. 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 2.递归特性 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题 ...

  7. jmeter的使用

    jmeter:java开发的开源的性能测试工具. *jmeter返回中文乱码: 1.在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把samplere ...

  8. topcoder srm 706 div1

    1.给定一个迷宫,点号表示不可行,井号表示可行.现在可以改变其中的一些井号的位置.问最少改变多少个井号可以使得从左上角到右下角存在路径. 思路:设高为$n$,宽为$m$,若井号的个数$S$小于$n+m ...

  9. was清除项目缓存数据

    步骤 彻底清理删除后的项目缓存 删除${WAS_HOME}\AppServer\profiles\AppSrv01\config\cells\xxxxxNode01Cell/applications/ ...

  10. ODAC(V9.5.15) 学习笔记(五)TSmartQuery

    TSmartQuery是相对于TOraQuery更简洁的数据集,其成员如下 名称 类型 说明 Expand Boolean 缺省为False,如果为True,则表示无论SQL中罗列的字段是哪些,数据集 ...