bootoption没有启动项_javacontinue的用法

bootoption没有启动项_javacontinue的用法一、现象从fetch说起,用fetch构造一个POST请求。1fetch(‘http://127.0.0.1:8000/api/login’,{2method:”POST”,3headers:({4’Content-Type’:’application/x-www-form-urlencoded’5}),6body:”name=”+name…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、现象

从fetch说起,用fetch构造一个POST请求。

1 fetch(‘http://127.0.0.1:8000/api/login’, {2 method: “POST”,3 headers: ({4 ‘Content-Type’: ‘application/x-www-form-urlencoded’

5 }),6 body: “name=” + name + “&password=” +pwd7 }).then((res) = >{8 console.log(res.status);9 returnres.json()10 }).then((data) = >{11 //console.log(data.result)

12 let loginResult =data.result13 if (loginResult == ‘ok’) {14 dispatch(getSuccess(data.list)) browserHistory.push(‘/index’)15 } else{16 console.log(“illegal login in !”)17 }18 }).19 catch((e) = >{20 console.log(e.message)21 })

调用的API服务是Spring boot开发的。

这个POST发出去,一切正常。

由于业务需要,我增加一个头字段:Authorization。

fetch请求的代码修改如下:

1 …2

3 headers: ({4 ‘Content-Type’: ‘application/x-www-form-urlencoded’,5 ‘Authorization’: ‘1111111222’

6 }),7 body: “name=” + name + “&password=” +pwd8 }).then((res) = >{9

10 …

问题出现了,服务器收到一个OPTIONS请求?!

二、原因

这是fetch出于安全性考虑做的一次服务器预查询,而我的服务没有做相应的处理,所以业务处理失败了。

三、解决

方法一:

网上查到的最多的说法就是:

在application.properties文件中增加这一行配置:

spring.mvc.dispatch-options-request=true

遗憾的是,我的环境配置没有生效。

方法二:

手动写一个Filter:

0 @Component

1 public classCorsFilter implements Filter {2 @Override3 public voidinit(FilterConfig filterConfig) throws ServletException {4 //TODO Auto-generated method stub

5 }6

7 @Override8 public voiddoFilter(ServletRequest req, ServletResponse res,9 FilterChain chain) throws IOException, ServletException {10 HttpServletResponse response =(HttpServletResponse) res;11 response.setHeader(“Access-Control-Allow-Origin”, “*”);12 response.setHeader(“Access-Control-Allow-Methods”,13 “POST, GET, OPTIONS, DELETE”);14 response.setHeader(“Access-Control-Max-Age”, “3600”);15 response.setHeader(“Access-Control-Allow-Headers”,16 “Content-Type, x-requested-with, X-Custom-Header, Authorization”);17 chain.doFilter(req, res);18 }19

20 @Override21 public voiddestroy() {22 //TODO Auto-generated method stub

23 }24 }

一点说明:

response.setHeader(“Access-Control-Allow-Headers”, “Content-Type, x-requested-with, X-Custom-Header, Authorization”);

配置中的Authorization是和请求中自定义的头部字段是一样的。

通过这个过滤器,fetch后续的POST请求就可以顺利的发出了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226207.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月27日 上午10:22
下一篇 2025年6月27日 上午11:01


相关推荐

  • laravel 授权使用gate门类

    laravel 授权使用gate门类

    2021年10月24日
    41
  • istio简介和基础组件原理(服务网格Service Mesh)

    Istio简介Istio:一个连接,管理和保护微服务的开放平台。按照isito文档中给出的定义:Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如SpringCloud,Dubbo),也不再需要自己手动实现各种复杂的服务…

    2022年4月4日
    58
  • ucml 连接虚字段

    ucml 连接虚字段转载于 https www cnblogs com Jeely p 10766840 html

    2026年3月18日
    2
  • springboot集成日志

    springboot集成日志一、通过代码引入slf4j因为pom文件中已经通过父类引入了log4j查看中有直接进行引入即可。// 在类中引入,MyController是本类名 private static final Logger log = LoggerFactory.getLogger(MyController.class);下面直接使用即可。显示结果:默认情况下是info…

    2022年6月13日
    31
  • select top 的用法

    select top 的用法selecttop1*from员工orderby编号select*from员工orderby编号select*from员工where编号likeYG%orderby编号descselectTOP1*from员工where编号likeYG%orderby编号desc

    2022年7月13日
    19
  • js定时器(执行一次、重复执行)

    js定时器(执行一次、重复执行)js 定时器 执行一次 重复执行 这篇文章主要分享一段 js 代码 有关 js 定时器的小例子 分为执行一次的定时器与重复执行的定时器 需要的朋友可以参考下 1 只执行一次的定时器复制代码代码如下 2 重复执行的定时器复制代码代码如下 备注 如果在一个页面中有两个方法 都是在页面加载完成之后执行的 实际却未能按先后顺序执行 可以参照如下方法解决 可以在 onload 方法中添加一个定时器 设置

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号