使用ajax请求接口,跨域后cookie无法设置,全局配置ajax;及使用axios跨域后cookie无法设置,全局配置axios
问题一:
使用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的更多相关文章
- AJAX请求真的不安全么?谈谈Web安全与AJAX的关系。
开篇三问 AJAX请求真的不安全么? AJAX请求哪里不安全? 怎么样让AJAX请求更安全? 前言 本文包含的内容较多,包括AJAX,CORS,XSS,CSRF等内容,要完整的看完并理解需要付出一定的 ...
- 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 ...
- Ajax请求接口加密研究(针对网页前端的接口安全加密机制研究)
通常我们在h5前端调用后台接口时,一般是ajax,那么接口的安全成了一个问题. 这里可以肯定的说,前端调用的接口一定要验证! 然后剖析了微信网页版.京东网页版这些,也都是通过接口的形势绑定数据,所以在 ...
- ajax请求接口数据
var api = 'http://192.168.68.208:666/ajax/api.ashx'; // api += 'action=/api/blackhistory/list&ke ...
- jQuery中ajax请求的六种方法(三、一):$.ajax()方法
1.基础的$.ajax()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- web api 解决Ajax请求跨域问题
前端ajax请求接口时,经常出现跨域问题,当然了解决方法有很多种,比如: http://www.jb51.net/article/68424.htm 我本人恰好前后端都会一点,所以直接在接口端处理. ...
- ajax请求执行完成后再执行其他操作(jQuery.page.js插件使用为例)
就我们做知,ajax强大之处在于它的异步请求,但是有时候我们需要ajax执行彻底完成之后再执行其他函数或操作 这个时候往往我们用到ajax的回调函数,但是假如你不想或者不能把接下来的操作写在回调函数中 ...
- Session失效后所有Ajax请求跳转登录地址
当登录的Session失效后,采用ajax请求数据时会没有反应,这时候应该自动跳转到登录页面,让用户重新登录. 全局配置以下可实现 $(function() { $.ajaxSetup({ compl ...
- 使用ajax请求后返回数据显示undefinded解决办法
今天在使用七牛的sdk做断点续传时候,当文件过大,本地没有存储时候,想要通过ajax将本地信息存到服务器缓存,之后通过读取缓存的方式来完成文件过大断点续传无法使用问题. 但是在使用ajax请求的时候, ...
随机推荐
- 基于OAuth2.0的第三方认证
浅显易懂的解释 来源 yahoo OAuth认证 原理 理解OAuth 2.0:原理.分类 一张图搞定OAuth2.0:是什么,怎么用 应用自身,完成用户认证: 缺点: 1.不同的访问Web应用提供不 ...
- arcgis 要素服务增删改查
两种方式: 第一种 要素服务的增删改操作,在ArcGIS API for JS中给我们提供了三个类用于要素的增Add,删Delete,改Update 添加draw和要素服务 //用于操作的要素图层,注 ...
- js控制的选项卡
选项卡在各种网站网页上是随处可见的一种形式 今天就简单的讲解下 选项卡得制作方法 首先:思路: 我们做一个四个控制的选项卡 则应该有四个小的DIV 外边包裹着一个大的div 用四个input按钮来控 ...
- C# 用面向对象的思想去编程
再接上一篇博文,之前写的两篇博文虽然实现了功能,但是和控件之间的粘性太大,依赖于控件进行操作,所以这篇博文主要用面向对象的思想做一个Demo,将逻辑层与显示层剥离开 首先新建一个窗体文件,搭建界面完毕 ...
- vs 2013 编译cocos2d-x-3.9
下载地址:链接: https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ 提取码: p1pb 下载完成后,解压 进入build 目录 使用vs 2013 打开工 ...
- 1.0 poi单元格合合并及写入
最近项目中用到poi生成Excel时,用到了单元格合并,于是参考了http://www.anyrt.com/blog/list/poiexcel.html写的文章,但是其中有些地方不是很清楚,于是自己 ...
- lambda表达式底层处理机制
为了支持函数式编程,Java 8引入了Lambda表达式,那么在Java 8中到底是如何实现Lambda表达式的呢? Lambda表达式经过编译之后,到底会生成什么东西呢? 在没有深入分析前,让我们先 ...
- pytorch-1.0 踩坑记录
参加百度的一个竞赛,官方要求把提交的代码测试环境pyorch1.0,于是将自己计算机pytorch升级到1.0. 在ubuntu下用conda install pytorch 命令安装时,效果很差,解 ...
- Codeforces 987 F - AND Graph
F - AND Graph 思路: 首先,x & (~x) == 0 其次,~x 的 子集 y = ((~x) ^ (1<<k)), 0<= k < n(如果k这一位是 ...
- MyBatis的传入参数parameterType类型
1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,string,long,Date; 1. 2. 复杂数据类型:类和Map 2. 如何获取参数中的值 ...