java options设置_【java】后台如何处理OPTIONS请求

5235d26070e7747c0b3f9e513e25237c.png

headers: ‘Content-Type’: ‘application/json’

针对一个接口“/getProjectsByUserId”

前端发POST请求,并且headers: ‘Content-Type’: ‘application/json’,

所以POST请求为复杂请求,会先发送个OPTIONS请求。

但是我的后台里面没有写关于/getProjectsByUserId的OPTIONS请求。

所以后台会报错RESTEASY003655: No resource method found for options, return OK with Allow header

前台报错500

e4f6c6838fe82a8bd03adb4549534256.png

我在专门写个OPTIONS请求(让它返回200)的话.OPTIONS请求之后不会继续执行POST请求了。

然后各种spring跨域的配置都不好使。比方说写filter或者改配置(http://www.mamicode.com/info-…)或者这种

620076c952e10679c299cb328baa4385.png

请问还有什么办法。。

回答

我用的网上的filter。

比较奇葩的是我需要@Order(1)来设定filter优先级最高才能生效。

这个是跨域问题,预检请求OPTIONS返回200没问题,同时还应该设置允许跨域;另外,你这个接口是用来处理POST的,那么不止需要处理OPTIONS,也要支持POST处理啊

OPTION请求返回的应该是204吧。

应该是在filter中检验是否允许

option为预请求,跨域或者复杂请求,浏览器都会自动发起一个预先请求,可以设置options的缓存时间

// 本次预检请求的有效期,默认为20天

header('Access-Control-Max-Age: 1728000');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值