Ajax需要带头信息跨域问题的解决
 $.ajax({
       type:"get",
       url:"http://localhost:8082/index/getMsg",
       dataType:'json',
       headers: {
         "Content-Type": "application/x-www-form-urlencoded",
         "token":"token"
       },
       success:function(data){
         console.log(data)
         if(data.status == "0"){
           //登录成功
         }else {
           alert(data.msg)
         }
       },
       error:function(data){
         console.log(data)
       }
     });
前端代码
"Content-Type": "application/x-www-form-urlencoded",是必填项
response.setHeader("Access-Control-Allow-Origin", "*");
        String token = request.getHeader("token");
       // System.out.println("filter origin:"+token);//通过打印,可以看到一次非简单请求,会被过滤两次,即请求两次,第一次请求确认是否符合跨域要求(预检),这一次是不带headers的自定义信息,第二次请求会携带自定义信息。
        if ("OPTIONS".equals(request.getMethod())){//这里通过判断请求的方法,判断此次是否是预检请求,如果是,立即返回一个204状态吗,标示,允许跨域;预检后,正式请求,这个方法参数就是我们设置的post了
            response.setStatus(HttpStatus.SC_NO_CONTENT); //HttpStatus.SC_NO_CONTENT = 204
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, OPTIONS, DELETE");//当判定为预检请求后,设定允许请求的方法
            response.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization"); //当判定为预检请求后,设定允许请求的头部类型
            response.addHeader("Access-Control-Max-Age", "1");
            chain.doFilter(request, response);
            return;
        }
后台过滤器设置
此外控制层加入
@CrossOrigin注解
Ajax需要带头信息跨域问题的解决的更多相关文章
- Jquery AJAX ASP.NET IIS 跨域 超简单解决办法
		第一种: 在IIS添加如下标头即可 Access-Control-Allow-Headers:Content-Type, api_key, AuthorizationAccess-Control-Al ... 
- jquery ajax跨域的完美解决方法(jsonp方式)
		ajax跨域请求的问题,JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式,接下来为大家详细介绍下客户端JQuery.ajax的调用代码 今天在项目中需要做远程数据加载 ... 
- AJAX跨域问题以及解决思路(更新中)
		跨域的三大原因(同时满足) 浏览器限制 跨域 XHR请求 解决思路: 让浏览器不做限制,指定参数,让浏览器不做校验,但该方法不太合理,它需要每个人都去做改动. 不要发出XHR请求,这样就算是跨域,浏览 ... 
- JQuery的Ajax跨域请求的解决方式
		今天在项目中须要做远程数据载入并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究 ... 
- Ajax跨域请求怎么解决?
		前言 项目中需要将第三方系统中,对应用户的代办消息集成到系统中.对方提供了获取对应用户的接口url,但是由于两边的系统是部署到客户现场不同IP的虚机上的,所以进行ajax请求的时候是属于跨域请求的.之 ... 
- Springboot如何优雅的解决ajax+自定义headers的跨域请求
		1.什么是跨域 由于浏览器同源策略(同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.),凡是发 ... 
- Springboot如何优雅的解决ajax+自定义headers的跨域请求[转]
		1.什么是跨域 由于浏览器同源策略(同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.),凡是发 ... 
- WebApi2跨域问题及解决办法
		跨域问题产生的原因 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能.现在所有支持JavaScript的浏览器都会使用这个策略.所谓同源是指,域名,协议, ... 
- .Net 站点跨域问题及解决方法
		一.什么是站点跨域 了解跨域之前, 先了解下什么同源策略?百度百科:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功 ... 
随机推荐
- sosreport-汇总收集linux系统信息
			有时候我们想将Linux服务器信息一次性查询并导出发送给他人,我们可以使用这个sosreport这个工具 安装 yum install sos -y 收集信息 sosreport 收集到的信息默认保 ... 
- mysql 生成时间序列数据 - 存储过程
			由于时间自动转换为int值, 做一步转化,也可在调用时处理 use `test`; CREATE table test.test1 as SELECT state, id, `规格条码`, `色号条码 ... 
- js驗證網址URL格式
			/^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)? ... 
- 剑指offer 6.查找和排序 旋转数组的最小数字
			题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ... 
- MS+Oracle各种兼容性的坑
			自17年开始新产品开始全面支持Oracle 12c,但陆续发现各种环境问题兼容性的坑,在此汇总一下: 使用11.2.0.1的客户端版本,在连接12c时,发现system账号登陆报用户名密码错误,普通的 ... 
- delphi 按键测试
			unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ... 
- 在SAS数据步中执行过程步的简单示例
			SAS中的许多过程步都是封装好的,而且SAS的编程特点决定了只能是DATA步执行完之后再执行PROC步,或者PROC步执行完之后再执行DATA步.因此有时候DATA步只能利用PROC步执行完之后的结果 ... 
- Python连接Oracle数据查询导出结果
			python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 cx_oracle项目地址:https://pypi.org/project/cx_ ... 
- 安装pytorch成功但cuda不可用
			贴上我看的教程https://zhuanlan.zhihu.com/p/26871672 一开始想用pycharm装pytorch,但不知道为什么一直失败.后来只能conda pip安装 但conda ... 
- css -理解盒模型
			标准模式: 总宽度/高度=width/height+padding+border+margin 怪异模式(quirks 模式): 总宽度/高度=width/height + margin = 内容区宽 ... 
