问题一:

  使用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. IAR中的 identifier "FILE" is undefined 问题

     最近由于希望使用IAR的printf()函数方便进行打印字符,出现IAR报错,即:identifier "FILE" is undefined,问题得以解决.   (1)进行pr ...

  2. twitter ads_campaign management

    下载链接

  3. facebook api之基本概念(中文)

    Facebook广告API系列 1 Facebook Graph API Facebook提供了一套类rest的接口,统称为Graph API.为啥叫Graph?因为facebook把所有的资源都抽象 ...

  4. HDU 5573 Binary Tree(构造题)

    http://acm.hdu.edu.cn/showproblem.php?pid=5573 题意:给出一个满二叉树,根节点权值为1,左儿子为2*val,右儿子为2*val+1.现在有只青蛙从根节点出 ...

  5. 自定义标签TLD文件中,rtexprvalue子标签的意思

    rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否能够利用JSP表达式. 举例子: 1.定义一个TLD文件: <tag> <name ...

  6. 小程序之map地图上不能在覆盖层

    问题:页面上有一个地图功能,地图上面有两个按钮,是需要覆盖在地图上的,在小程序编辑器中显示是没问题的,但是扫码测试后发现在手机上不显示这两个按钮 解决方法:使用cover-viwe标签包裹一下就可以了

  7. 程序莫名其妙的崩溃,加断点刚进入函数就崩溃,断点不往下走,读取图片数据到程序并保存到一个HBITMAP 中

    HPR_INT32 CCarManageDlg::DrawPic2UIForm(IUIFormObj* pUIForm,string& strPicName){//程序崩溃的地方 HPR_IN ...

  8. synchronized同步方法《一》

    1.方法内的变量为线程安全 "非线程安全"问题存在于"实例变量"中,如果是方法内部的私有变量,则不存在"非线程安全"问题,所得结果也就是&q ...

  9. ES6 学习笔记(整理一遍阮一峰大神得入门文档,纯自己理解使用)

    1.let命令 1)let和var的区别:let声明的变量只有所在的代码块有效. 2)没有变量的提升,一定要声明后使用.使用let命令声明变量之前,该变量都是不可用的.形成“暂时性死区”. 3)typ ...

  10. v891 安卓平板的root

    看了 油管的视频,标题:Onda V891 - Root Android 4.4.4 (Kit Kat) 2)下载工具,照着做就行了. 3)root完之后,安装 [钛备份](TitaniumBacku ...