快捷导航

跨域传session还是不行为什么?

package com.miaoshaproject.controller;import com.alibaba.druid.util.StringUtils;import com.miaoshaproject.controller.viewobject.UserVO;import com.miaoshaproject.error.BusinessException;import com.miaoshaproject.error.EmBusinessError;import com.miaoshaproject.response.CommonReturnType;import com.miaoshaproject.service.UserService;import com.miaoshaproject.service.model.UserModel;import org.springframework.beans.BeanUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import sun.misc.BASE64Encoder;import javax.servlet.http.HttpServletRequest;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Random;@Controller("user")@RequestMapping("/user")@CrossOrigin(allowCredentials = "true",allowedHeaders = "*")public class UserController extends BaseController{    @Autowired    UserService userService;    @Autowired    private HttpServletRequest httpServletRequest;    //用户注册接口    @RequestMapping(value = "/register",method = {RequestMethod.POST},consumes = {CONTENT_TYPE_FORMED})    @ResponseBody    public CommonReturnType register(@RequestParam(name = "telphone")String telphone,                                     @RequestParam(name = "otpCode")String otpCode,                                     @RequestParam(name = "name")String name,                                     @RequestParam(name = "gender")Integer gender,                                     @RequestParam(name = "age")Integer age,                                     @RequestParam(name = "password")String password) throws BusinessException, UnsupportedEncodingException, NoSuchAlgorithmException {        //验证手机号和对应的otpCode相符合        String inSessionOtpCode = (String)this.httpServletRequest.getSession().getAttribute("telphone");        if (!StringUtils.equals(otpCode,inSessionOtpCode)){            throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR,"短信验证码不符合");        }        //用户的注册流程        UserModel userModel = new UserModel();        userModel.setName(name);        userModel.setGender(new Byte(String.valueOf(gender.intValue())));        userModel.setAge(age);        userModel.setTelphone(telphone);        userModel.setRegisterMode("byphone");        userModel.setEncptPassword(this.EncodeByMd5(password));        userService.register(userModel);        return CommonReturnType.create(null);    }    public String EncodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {        //确定计算方法        MessageDigest md5 = MessageDigest.getInstance("MD5");        BASE64Encoder base64en = new BASE64Encoder();        //加密字符串        String newStr = base64en.encode(md5.digest(str.getBytes("utf-8")));        return newStr;    }    //用户获取OTP验证码    @RequestMapping(value = "/getotp",method = {RequestMethod.POST},consumes = {CONTENT_TYPE_FORMED})    @ResponseBody    public CommonReturnType getOtp(@RequestParam(name = "telphone")String telphone){        //需要按照一定规则生成OTP验证码        Random random = new Random();       int randomInt = random.nextInt(99999);       randomInt+=10000;       String otpCode = String.valueOf(randomInt);        //将OTP验证码与用户手机号关联,使用httpsession的方式绑定他的手机号与OTPCODE        httpServletRequest.getSession().setAttribute(telphone,otpCode);        //将OTP验证码通过短信通道发送给用户,省略        System.out.println("telphone="+telphone+"&otpCode="+otpCode);        return CommonReturnType.create(null);    }    @RequestMapping("/get")    @ResponseBody    public CommonReturnType getUser(@RequestParam(name = "id")Integer id) throws BusinessException {        //调用service服务层调取对象       UserModel userModel =  userService.getUserById(id);       //若获取的对应用户信息不存在        if (userModel == null){            throw new BusinessException(EmBusinessError.USER_NOT_EXIST);        }       UserVO userVO = convertFromUserModel(userModel);       return CommonReturnType.create(userVO);    }    private UserVO convertFromUserModel(UserModel userModel){        if (userModel == null){            return  null;        }        UserVO userVO = new UserVO();        BeanUtils.copyProperties(userModel,userVO);        return userVO;    }}                                                获取otp信息

                                        手机号                                                                               
               
                                                                        获取otp短信                                       
       
                                                用户注册

                                        手机号                                                                               
               
                                        验证码                                                                               
               
                                        用户昵称                                                                               
               
                                        性别                                                                               
               
                                        年龄                                                                               
               
                                        密码                                                                               
               
                                                                        提交注册                                       
       
照着老师写的,自己看了好多遍,没错,调试也是正确插入了session,但是跨域获取的时候还是null

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

浏览器按F12看看是否传参了,后端Debug一下看接受到参数没有
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP