文档章节

vue-resource get/post请求如何携带cookie的问题

o
 osc_z1hvg4cu
发布于 2018/04/24 00:12
字数 412
阅读 27
收藏 0

精选30+云产品,助力企业轻松上云!>>>

vue-resource get/post请求如何携带cookie的问题

当我们使用vue请求的时候,我们会发现请求头中没有携带cookie传给后台,我们可以在请求时添加如下代码:
vue.http.options.xhr = { withCredentials: true}; 的作用就是允许跨域请求携带cookie做身份认证的;
vue.http.options.emulateJSON = true; 的作用是如果web服务器无法处理 application/json的请求,我们可以启用 emulateJSON 选项;
启用该选项后请求会以 application/x-www-form-urlencoded 作为MIME type, 和普通的html表单一样。 加上如下代码,get请求返回的代码会
携带cookie,但是post不会;

为了方便,我们这边是封装了一个get请求,只要在get请求添加参数 { credentials: true } 即可使用;

const ajaxGet = (url, fn) => {
  let results = null;
  Vue.http.get(url, { credentials: true }).then((response) => {
    if (response.ok) {
      results = response.body;
      fn(1, results);
    } else {
      fn(0, results);
    }
  }, (error) => {
    if (error) {
      fn(0, results);
    }
  });
};

如上只会对get请求携带cookie,但是post请求还是没有效果的,因此在post请求中,我们需要添加如下代码:

Vue.http.interceptors.push((request, next) => {
  request.credentials = true;
  next();
});

Vue.http.interceptors 是拦截器,作用是可以在请求前和发送请求后做一些处理,加上上面的代码post请求就可以解决携带cookie的问题了;
因此我们的post请求也封装了一下,在代码中会添加如上解决post请求携带cookie的问题了;如下代码:

const ajaxPost = (url, params, options, fn) => {
  let results = null;

  if (typeof options === 'function' && arguments.length <= 3) {
    fn = options;
    options = {};
  }
  Vue.http.interceptors.push((request, next) => {
    request.credentials = true;
    next();
  });
  Vue.http.post(url, params, options).then((response) => {
    if (response.ok) {
      results = response.body;
      fn(1, results);
    } else {
      fn(0, results);
    }
  }, (error) => {
    if (error) {
      fn(0, results);
    }
  })
};
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

如何混淆(保护)JavaScript? [关闭] - How can I obfuscate (protect) JavaScript? [closed]

问题: Closed . 已关闭 。 This question needs to be more focused . 这个问题需要更加集中 。 It is not currently accepting answers. 它当前不接受答案。 Want to improve this questio......

技术盛宴
43分钟前
6
0
WIN10操作系统 Visual Studio 2017 C# ASP.net Web 简单接口+MySQL数据库+NPOI导出到EXCEL开发、发布及部署到局域网详细教程(一)

本文利用Visual Studio 2017 C#编写一个简单的WEB程序发布和部署到局域网内,目的是实现:在局域网内任意一台未安装OFFICE办公软件的电脑上打开浏览器后在地址栏输入IP地址和端口号,即可链接...

osc_51airx3z
43分钟前
5
0
Spring IoC 属性赋值阶段

前言 本系列全部基于 Spring 5.2.2.BUILD-SNAPSHOT 版本。因为 Spring 整个体系太过于庞大,所以只会进行关键部分的源码解析。 本篇文章主要介绍 Spring IoC 容器中 bean 的属性赋值阶段。 ...

osc_vpogdtu8
43分钟前
8
0
《The Google File System》论文研读

GFS 论文总结 说明:本文为论文 《The Google File System》 的个人总结,难免有理解不到位之处,欢迎交流与指正 。 论文地址:GFS Paper 阅读此论文的过程中,感觉内容繁多且分散,一个概念...

osc_dg0eswo7
45分钟前
10
0
Spring Cloud系列教程第九篇-Eureka自我保护机制

Spring Cloud系列教程第九篇-Eureka自我保护机制 本文主要内容: 1:自我保护介绍 2:导致原因分析 3:怎么禁止自我保护 本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列》教程的总...

osc_sejhgcp0
46分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部