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
我在专门写个OPTIONS请求(让它返回200)的话.OPTIONS请求之后不会继续执行POST请求了。
然后各种spring跨域的配置都不好使。比方说写filter或者改配置(/info-…)或者这种
请问还有什么办法。。
回答
我用的网上的filter。
比较奇葩的是我需要@Order(1)来设定filter优先级最高才能生效。
这个是跨域问题,预检请求OPTIONS返回200没问题,同时还应该设置允许跨域;另外,你这个接口是用来处理POST的,那么不止需要处理OPTIONS,也要支持POST处理啊
OPTION请求返回的应该是204吧。
应该是在filter中检验是否允许
option为预请求,跨域或者复杂请求,浏览器都会自动发起一个预先请求,可以设置options的缓存时间
// 本次预检请求的有效期,默认为20天
header('Access-Control-Max-Age: 1728000');
如果觉得《java options设置_【java】后台如何处理OPTIONS请求》对你有帮助,请点赞、收藏,并留下你的观点哦!