Java跨域訪問sessionid不一致問題處理

導語:直接上處理方法,具體原理請自行查閱資料.

一.服務器段:

設置可以支持跨域請求:

  response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
      /*  response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");*/
        response.setHeader("Access-Control-Allow-Credentials","true"); //是否支持cookie跨

@RestController
@CrossOrigin(origins = "http://127.0.0.1:8080",maxAge = 3600)
@RequestMapping("/login")
//@SessionAttributes(value="validCode")
public class LoginController {
    @Autowired
    private LoginServer loginServer;
    @RequestMapping(value = "in" ,method = RequestMethod.POST)
    public void login(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
      /*  response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");*/
        response.setHeader("Access-Control-Allow-Credentials","true"); //是否支持cookie跨域
        Login user=null;
        JSONObject obj=new JSONObject();
        PrintWriter out=response.getWriter();
        String code=request.getParameter("code");
        String username=request.getParameter("username");
        String pwd=request.getParameter("pwd");
        session=request.getSession();
       String validCode=(String) session.getAttribute("validCode");

2.客戶端

在ajax請求中添加可以支持攜帶cookie;

xhrFields:{
    withCredentials:true
},
 $.ajax({
          type:"post",
          url:"http://127.0.0.1:8081/service/login/in",
          xhrFields:{
              withCredentials:true
          },
          data:{
              username:$("#username").val(),
              pwd:$("#pwd").val(),
              code:$("#code").val()
          },
          dataType:"json",
          success:function (data) {
           if(data.pass){
               window.location.href="index.html";

           }else{
              layer.alert(data.msg)
           }
          }
      })

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章