当前位置: 首页 > news >正文

织梦网站地图模板下载网站编程薪资

织梦网站地图模板下载,网站编程薪资,佛山智能建站,网站推广人员怎么算业绩来源场景: RequestMapping(“/captcha”)接口设置了SESSION_KEY,也能获取到,但是到了PostMapping(“/login”)接口就是空的,由于跨域导致的两个session_id不是同一个 /*** 系统用户 前端控制器*/ Controller CrossOrigin(origins…

来源场景:
@RequestMapping(“/captcha”)接口设置了SESSION_KEY,也能获取到,但是到了@PostMapping(“/login”)接口就是空的,由于跨域导致的两个session_id不是同一个
在这里插入图片描述


/*** 系统用户 前端控制器*/
@Controller
@CrossOrigin(origins = "*",maxAge = 3600)// 前端请求发生跨域错误,加入这段处理
@RequestMapping("/sys")
public class LoginController {private static final String SESSION_KEY = "captcha";@Autowiredprivate IAdminService adminService;/*** 验证码生成* @param request 请求报文* @param response 响应报文* */@RequestMapping("/captcha")public void generate(HttpServletRequest request, HttpServletResponse response) throws Exception {// 英文与数字验证码SpecCaptcha captcha = new SpecCaptcha();captcha.setLen(4);// 验证字符数// 结果String result = captcha.text();// 将结果存储到session中(由于有些验证码没存储结果,则需要自己存储,记得要转小写,可参考自带校验方法.ver)request.getSession().setAttribute(SESSION_KEY, result.toLowerCase());System.out.println("Session ID in /captcha: " + request.getSession().getId());System.out.println(request.getSession().getAttribute(SESSION_KEY));// 响应到前端captcha.out(response.getOutputStream());}/*** 登录* @return*/@PostMapping("/login")@ResponseBodypublic R login(HttpServletRequest request,@RequestBody Admin admin){
// 打印调试信息System.out.println("Session ID in /login: " + request.getSession().getId());System.out.println("SESSION_KEY retrieved in /login: " + request.getSession().getAttribute(SESSION_KEY));if(StringUtil.isEmpty(admin.getUserName())){return R.error("用户名不能为空");}if(StringUtil.isEmpty(admin.getPassword())){return R.error("密码不能为空");}String code = (String) request.getSession().getAttribute(SESSION_KEY);System.out.println(code);System.out.println(admin.getCaptcha());if (!CaptchaUtil.ver(admin.getCaptcha(), request)) {return R.error("验证码错误");}//开始数据库校验Admin resultAdmin = adminService.getOne(new QueryWrapper<Admin>().eq("userName",admin.getUserName()));if (resultAdmin==null){return R.error("用户名不存在!");}if (!resultAdmin.getPassword().trim().equals(admin.getPassword())){return R.error("用户名或密码错误!");}
//        String token = JwtUtils.createJWT("-1", "admin", SystemConstant.JWT_TTL);
//        Map<String,Object> resultMap=new HashMap<>();
//        resultMap.put("token",token);return R.ok();}}

后端跨域配置

/*** web项目配置类*/
@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE","OPTIONS").maxAge(3600);}}

前端使用axios发请求,需要添加
withCredentials: ‘include’, // 确保请求携带Cookie

下面是封装过的axios.js文件

// 引入axios
import axios from 'axios';
let baseUrl="http://localhost:8082/"
let imageUrl = "http://localhost:1111"
// 创建axios实例
const httpService = axios.create({// url前缀-'http:xxx.xxx'// baseURL: process.env.BASE_API, // 需自定义baseURL:baseUrl,withCredentials: 'include', // 确保请求携带Cookie// 请求超时时间//timeout: 3000 // 需自定义timeout: 10000
});//添加请求和响应拦截器
// 添加请求拦截器
httpService.interceptors.request.use(function (config) {// 在发送请求之前做些什么// config.headers.token=window.sessionStorage.getItem('token') || '';return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});// 添加响应拦截器
httpService.interceptors.response.use(function (response) {// 对响应数据做点什么return response;
}, function (error) {// 对响应错误做点什么return Promise.reject(error);
});/*网络请求部分*//**  get请求*  url:请求地址*  params:参数* */
export function get(url, params = {}) {return new Promise((resolve, reject) => {httpService({url: url,method: 'get',params: params}).then(response => {resolve(response);}).catch(error => {reject(error);});});
}/**  post请求*  url:请求地址*  params:参数* */
export function post(url, params = {}) {return new Promise((resolve, reject) => {httpService({url: url,method: 'post',data: params}).then(response => {console.log(response)resolve(response);}).catch(error => {console.log(error)reject(error);});});
}/**  文件上传*  url:请求地址*  params:参数* */
export function fileUpload(url, params = {}) {return new Promise((resolve, reject) => {httpService({url: url,method: 'post',data: params,headers: { 'Content-Type': 'multipart/form-data' }}).then(response => {resolve(response);}).catch(error => {reject(error);});});
}
export function getServerUrl(){return baseUrl;
}
export function getImageUrl(){return imageUrl;
}
export default {get,post,fileUpload
}
http://www.yayakq.cn/news/204784/

相关文章:

  • 深圳制作网站搜行者seo特效制作软件
  • 可以做关键词优化的免费网站图片设计 五星级酒店网站
  • 邢台建站企业邮箱怎么在本地搭建网站
  • 门户网站简单模板网站面包屑如何做
  • 张家港网站定制注册公司怎么收费标准
  • 做校园网站代码网络公司网站设计维护合同
  • 做仪表宣传哪个网站好海外短视频软件
  • 河南网站建设企业网站策划书撰写流程
  • 职业教育网站建设可行性报告wordpress+主题稳定
  • 北海做网站的公司江门市住房和城乡建设部网站
  • 网站开发合同 保密条款wordpress 绿色 炫 模板
  • liunx做网站跳转erp是什么意思
  • 建设网站建站简易网址制作
  • 做网站推广员图片处理问题企业网站建设合同
  • 莆田自助建站软件企业外包的风险与对策
  • 学网站开发需要会什么网站页尾模板
  • 电影网站开发api返回链接 网站惩罚检查 错误检查
  • 搜索引擎中 哪些网站可以获得更好的排名企业信息查询平台官网
  • 中企动力高端网站建设河南省建设协会网站
  • 公司网站建设的目标申请主机网站
  • 合肥住房城乡建设部的网站手机报价网
  • iis8搭建网站asp.net mvc做网站
  • 大型视频网站建设方案杭州发布官网
  • 网站建设需要入无形资产吗wordpress本地视频播放器
  • wordpress如何添加二级菜单网站建设推广 seo
  • 企业门户网站建设方案网站开发团队
  • 黄埔商城网站建设外贸网站建设收款通道
  • 中国建设银行官网站贺岁产品深圳logo设计公司排名前十强
  • asp网站开发参考文献网站建设报价方案
  • 新广告法 做网站的做外贸网站服务器要选择哪里的