遇到的问题
对于这个项目来说,需要处理跨域问题,还要使用jwt,这里在后端设置了两个拦截器,总是会出现跨域问题,是由于token拦截器先执行(会遇到跨域问题)。
还有一种情况是预请求(没有携带token)出问题,因为在token拦截器中设置了返回错误,所以预请求处理之后没有携带token就直接返回错误给前端,因为预请求请求失败,所以请求不能发出去,这个情况只需要把token拦截器中,返回错误的地方删除就好了。
预请求:与head类似,是客户端用于查看服务器的性能 。JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限
Java拦截器的执行顺序
顺序是分级的,filter/springinterceptor/aop三级,其中filter优先级最大。
- filter是继承javax.servlet.Filter的
- springinterceptor是spring里的拦截器,实现HandlerInterceptor的
- aop是指@Aspect注解的类
拦截器有一个order属性,用于指定拦截器的执行顺序。order属性的值越小,拦截器的执行优先级越高。
优先级:Order的值越小越先执行
注意:
- 如果不用@Order注解,相当于用 @Order(Integer.MAX_VALUE)
- 顺序按照@Order的值从小到大,如果值相同,就按照 “在项目中的先后顺序规则”
写了几个页面:
商家主页
个人资料页面:
商家管理页面:
主页:
搜索商家: