问题一:

  使用ajax/axios跨域请求接口,后端放行了,能够正常获取数据,但是cookie设置不进去,后端登录session判断失效

  ajax解决办法:

//设置ajax属性
  crossDomain:true      跨域代理
  xhrFields:{ withCredentials : true },   用于对本地XHR对象进行设置。一对「文件名-文件值」在本机设置XHR对象。例如,如果需要,你可以用它来为跨域请求设置XHR对象的withCredentials属性为true。 
     
  dataType: 'json',
corssDomain: true,
xhrFields: { withCredentials: true },

  axios解决办法:

  

// axios全局默认配置var baseUrl = '';
axios.defaults.baseURL = baseUrl;
axios.defaults.withCredentials = true; // 允许携带cookie
axios.defaults.crossDomain = true;
axios.defaults.dataType = 'json';

然后这样。登录cookie就能正常使用了;

问题二:因为但是项目做了一半了,发现需要给每个请求接口统一判断是否登录了,session是否过期了,所以需要全局配置ajax请求

  

  ajax解决办法:

    

// 统一配置ajax    ajaxSetup 为所有 AJAX 请求设置默认 URL 和 success 函数:
  complete      求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)
  dataFilter:    用于处理 XMLHttpRequest 原始响应数据的函数。预处理,在success和error函数之前
  
$.ajaxSetup({
dataType: 'json',
corssDomain: true,
xhrFields: { withCredentials: true },
dataFilter:function(data,type){
// console.log(data);
var dataParse = JSON.parse(data);
if(dataParse.code == '0'){
return data;
}else{
// console.log('权限认证失败');
var errHtml = `
<div id="errBox">
<div class="con">
<p class="txt">${dataParse.message}</p>
<button class="btn_close">我知道了</button>
</div>
</div>
`;
$('body').append(errHtml);
$('#errBox .btn_close').click(function(){
if(dataParse.code == 'AUTH_FAIL'){
window.parent.location.href="../../page/login/login.html";
}else{
$('#errBox').remove();
};
})
} }
});

还有更多ajxaSetup的有关用法:大家可以去文档看看:http://www.runoob.com/jquery/ajax-ajaxsetup.html

axios解决办法:

axios.interceptors.response.use(
res => {
// 数据响应之后,要做的业务
console.log(res); return res
},
error => {
return Promise.reject(error)
}
)

使用ajax请求接口,跨域后cookie无法设置,全局配置ajax;及使用axios跨域后cookie无法设置,全局配置axios的更多相关文章

  1. AJAX请求真的不安全么?谈谈Web安全与AJAX的关系。

    开篇三问 AJAX请求真的不安全么? AJAX请求哪里不安全? 怎么样让AJAX请求更安全? 前言 本文包含的内容较多,包括AJAX,CORS,XSS,CSRF等内容,要完整的看完并理解需要付出一定的 ...

  2. jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval("("+data+")"); 报错)

    $.ajax({    contentType: "application/x-www-form-urlencoded;charset=UTF-8" ,    type: &quo ...

  3. Ajax请求接口加密研究(针对网页前端的接口安全加密机制研究)

    通常我们在h5前端调用后台接口时,一般是ajax,那么接口的安全成了一个问题. 这里可以肯定的说,前端调用的接口一定要验证! 然后剖析了微信网页版.京东网页版这些,也都是通过接口的形势绑定数据,所以在 ...

  4. ajax请求接口数据

    var api = 'http://192.168.68.208:666/ajax/api.ashx'; // api += 'action=/api/blackhistory/list&ke ...

  5. jQuery中ajax请求的六种方法(三、一):$.ajax()方法

    1.基础的$.ajax()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  6. web api 解决Ajax请求跨域问题

    前端ajax请求接口时,经常出现跨域问题,当然了解决方法有很多种,比如: http://www.jb51.net/article/68424.htm 我本人恰好前后端都会一点,所以直接在接口端处理. ...

  7. ajax请求执行完成后再执行其他操作(jQuery.page.js插件使用为例)

    就我们做知,ajax强大之处在于它的异步请求,但是有时候我们需要ajax执行彻底完成之后再执行其他函数或操作 这个时候往往我们用到ajax的回调函数,但是假如你不想或者不能把接下来的操作写在回调函数中 ...

  8. Session失效后所有Ajax请求跳转登录地址

    当登录的Session失效后,采用ajax请求数据时会没有反应,这时候应该自动跳转到登录页面,让用户重新登录. 全局配置以下可实现 $(function() { $.ajaxSetup({ compl ...

  9. 使用ajax请求后返回数据显示undefinded解决办法

    今天在使用七牛的sdk做断点续传时候,当文件过大,本地没有存储时候,想要通过ajax将本地信息存到服务器缓存,之后通过读取缓存的方式来完成文件过大断点续传无法使用问题. 但是在使用ajax请求的时候, ...

随机推荐

  1. 基于OAuth2.0的第三方认证

    浅显易懂的解释 来源 yahoo OAuth认证 原理 理解OAuth 2.0:原理.分类 一张图搞定OAuth2.0:是什么,怎么用 应用自身,完成用户认证: 缺点: 1.不同的访问Web应用提供不 ...

  2. DPDK安装方法 17.12.13

    DPDK安装方法 17.12.13 Ubuntu: $ git clone https://github.com/DPDK/dpdk.git $ cd dpdk/ $ export RTE_ARCH= ...

  3. R语言可视化学习笔记之ggpubr包—SCI文章图

    转载:https://www.jianshu.com/p/678213d605a5?from=jiantop.com Hadley Wickham创建的可视化包ggplot2可以流畅地进行优美的可视化 ...

  4. mac终端不好用?用brew神器代替

    一.概念 Brew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷. 官 ...

  5. ERP系统知识笔记

    中心思想: 1.不管哪一家的ERP系统,都是以“平衡供需”为目的.以计划为中心思想的,并将各管理职能作紧密的集成 2.手工管理方式下,对库存量的掌握是不完整的.手工方式下,我们的数据只有现存量,无法记 ...

  6. win10上安装keras

    下载Anaconda https://www.anaconda.com/ 点击进入下载界面 选择Windows版本64位,python3.7 下载完成后 ,双击安装 等待安装完成! 安装MinGW包, ...

  7. fit_transform和transform的区别

    来自:泡泡糖nana 来自:俞驰 1. fit_transform是fit和transform的组合. 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法 ...

  8. np.zeros

    np.zeros构造一个全部由0组成的矩阵 用法:zeros(shape, dtype = float, order = 'C') 参数: shape:形状 dtype类型: t ,位域,如t4代表4 ...

  9. dict使用

    里面的元素是:key: value d = { 'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':75 } 打印:print d['Paul'] 注意:  通过 key ...

  10. 牛客网NOIP赛前集训营-提高组(第七场)C 洞穴

    洞穴 思路: 矩阵乘法 由于只需要知道 A ^ l 的 第a行第b个元素 所以我们每次在做矩阵乘法时只需要算第a行就可以了 还要像矩阵快速幂一样预处理A ^ (1<<d) 代码: #pra ...