介绍

nuxt.js是基于Vue的应用框架,它预设了利用 Vue.js 开发服务端渲染的应用所需要的各种配置。它提供了一个asyncData方法可用于在服务端里异步的获取数据,它可以在页面组件每次加载前被调用。

使用

这里使用的是typescript的方式,asyncData方法获取到数据后会填充到data中,且asyncData方法在vue组件实例化之前被调用,因此无法获取到实例this。

方式一:使用axios

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({asyncData(context: any): Promise <any> {return axios.get('http://test-api/get/data').then(res => {return {title: res.data.title, list: res.data.list}})},
})
export default class Index extends Vue {}

方式二:使用async\await

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({async asyncData(context: any): Promise <any> {let {data} = await axios.get('http://test-api/get/data');return {title: data.title, list: data.list}},
})
export default class Index extends Vue {}

上面就是asyncData部分的使用方式,当页面第一次加载时会在服务端请求数据并填充到页面的data中。

获取Cookie

因为asyncData是会在服务端调用的,因此它无法和浏览器一样去获取Cookie,但是asyncData中的第一个参数是一个上下文对象,它在服务端调用时,我们可以访问用户请求的req和res对象,因此我们也可以通过它来获取我们对应的Cookie信息。

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({async asyncData(context: any): Promise <any> {let params = {name: 'tom',age: 20,token: '',};// 可以使用process.server检查是否在服务器端  if (process.server) {if (context.req && context.req.headers !== undefined) {// 获取Cookies信息let cookieArr = context.req.headers.cookie;if (!params.token) {params.token = getCookie('token', cookieArr)}}}let {data} = await axios.post('http://test-api/post/data', params);return {title: data.title, list: data.list}},})
export default class Index extends Vue {}//获取对应cookie方法function getCookie (name: string, strCookie: any) {let arrCookie = strCookie.split(';');let cookie = arrCookie.find(item => item.split('=')[0] === name);return cookie ? cookie.split('=')[1] : '';
}

结语

使用asyncData方法时需要注意上下文对象的一些参数是否可用,因为它同时应用在两个端,所以需要对一些参数进行判断之后在使用。

Nuxt服务端请求及获取Cookie相关推荐

  1. nuxt 服务端渲染

    nuxt 服务端渲染 1 nuxt 生命周期 1.1 服务端生命周期 middleware , plugins , validate 比较特殊,算成生命周期??? 服务端生命周期中, 无法拿到wind ...

  2. 服务端和客户端的cookie传递

    文章目录 一.现象 二.过程 三.定义 cookie的结构 cookie的分类 一.客户端 二. 服务端 跨域问题 踩过的一些坑 总结 一.现象 CSDN的登录界面下会有"两周内不再登录&q ...

  3. Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程...

    一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助 ...

  4. C#开发BIMFACE系列19 服务端API之获取模型数据4:获取多个构件的共同属性

    系列目录     [已更新最新开发文章,点击查看详细] 在前几篇博客中介绍了一个三维文件/模型包含多个构建,每个构建又是由多种材质组成,每个构建都有很多属性.不同的构建也有可能包含相同的属性. 上图中 ...

  5. C#开发BIMFACE系列20 服务端API之获取模型数据5:批量获取构件属性

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性>中介绍了获取单个文件/模型的单个构建的属性,本篇介绍 ...

  6. C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性

    系列目录     [已更新最新开发文章,点击查看详细] 本篇主要介绍如何获取单文件/模型下单个构建的属性信息. 请求地址:GET https://api.bimface.com/data/v2/fil ...

  7. C#开发BIMFACE系列9 服务端API之获取应用支持的文件类型

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE最核心能力之一是工程文件格式转换.无需安装插件,支持数十种工程文件格式在云端转换,完整保留原始文件信息.开发者将告别原始文件解析烦 ...

  8. web渗透测试----15、SSRF漏洞(服务端请求伪造漏洞)

    SSRF漏洞是一种在未能获取服务器权限时,利用服务器漏洞,由攻击者构造请求,服务器端发起请求的安全漏洞,攻击者可以利用该漏洞诱使服务器端应用程序向攻击者选择的任意域发出HTTP请求. 很多Web应用都 ...

  9. 渗透测试-SSRF服务端请求伪造(Server-Side Request Forgery)

    SSRF服务端请求伪造 漏洞原理 本次靶场的设计拓扑图 x.x.x.x:8080 - 判断 SSRF 是否存在 172.72.23.21 - SSRF 获取本地信息 172.72.23.1/24 - ...

最新文章

  1. Google 选择 Jetty 放弃 Tomcat
  2. VS2005转换工作环境
  3. Docker学习笔记之保存和共享镜像
  4. CAD2015软件安装资料及教程
  5. 为防止员工带薪拉屎,快手公司推出“计时厕所”?官方称只是为了测试!
  6. C语言18个经典问题答录
  7. 如何利用Gitlab-CI持续部署到远程机器?
  8. php导入excel到mysql的方法
  9. 前端学习(2617):删除品牌
  10. 前端学习(2319):angular2概述
  11. 排序千万级数据_从千万级房产成交量排名,窥探中国城市的真实家底
  12. mysql8.0免安教程图解,mysql 8.0.21免安装版配置方法图文教程
  13. adb failed to start daemon 彻底解决
  14. 12017.linux设置串口支持非标准波特率614400
  15. vantabs多页渲染_选择引擎渲染页面
  16. 【24】淘宝sdk——入门实战之左右悬浮模块
  17. 全国2009年1月电子商务与电子政务试题
  18. python教程系列(三.6.2、XML)
  19. 金融知识图谱有什么?
  20. 蓝牙初学者要知道的几件事

热门文章

  1. 炮弹仿真系统matlab软件下载,基于Matlab/Simulink的导弹六自由度弹道仿真系统设计...
  2. java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...
  3. SQLHelper.cs
  4. HTML5——HTML5新标签与特性
  5. 普通人该如何获取第一手数据?
  6. 2022.12.8 半导体器件物理
  7. JavaWeb毕业生就业招聘管理系统
  8. 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路
  9. ixigua解析_视频解析下载
  10. Vue实战开发二(个人中心实现)