已经解决了,少了一段Ajax代码
已解决:下单未成功断点调试发现主要是itemId为null,注意去看
decreaseStock的SQL语句 <update id="decreaseStock"> update item_stock set stock = stock-#{amount} where item_id = #{itemId} and stock>=#{amount} </update> 原来写的是where item_id = #{item_id } and stock>=#{amount},这里参数错误,不一致,所以要修改 //库存扣减 boolean decreaseStock(Integer itemId, Integer amount) throws BusinessException;
// 引用之前的人回答的: request.getSession().setAttribute("IS_LOGIN", true); request.getSession().setAttribute("LOGIN_USER", userModel); // 后面加入下面这段代码就可以了 ResponseCookie cookie = ResponseCookie.from("JSESSIONID", request.getSession().getId() ) // key & value .httpOnly(true) // 禁止js读取 .secure(true) // 在http下也传输 .domain("localhost")// 域名 .path("/") // path .sameSite("None") // 大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外 .build() ; response.setHeader(HttpHeaders.SET_COOKIE, cookie.toString());
之前为了调试找错误,把BaseContorller的继承去掉了。 然后没登录,那个errCode不一样了。。。
好的我找到原因了,我前端传递的参数打错字母了.....
建议大家在查找问题的时候,可以去掉Controller继承的BaseController,这样就能直接在页面检查时看到真正的问题报错,方便大家排查。最后检查无误了再把BaseController加回去
请问搞好了么?我也是同样问题
你是不是认为构造button的前端代码覆盖了传入id获取名字的方法??老师是复制了又重写了一份,所以只是在原有基础上新增
// 打印一下ajax的success或error函数的返回值
$.ajax({
// ...
success: (data)=> {
console.log(data); // 打印一下这个返回值,看下输出什么,再根据key:value,去调用自己要的数据
},
error: (data)=>{
console.log(data); // 打印一下这个返回值,看下输出什么,再根据key:value,去调用自己要的数据
}
})
下单显示未登录的可能原因:usercontroll里面login方法中session设置的key名和ordercongtroll里获取的key名不一致
usercontroll里面:
//加入到用户登录成功的session内
this.httpServletRequest.getSession().setAttribute("IS_LOGIN",true);//设置一个key用来标识
this.httpServletRequest.getSession().setAttribute("LOGIN_USER",userModel);
ordecontroll里面:
Boolean isLogin = (Boolean) httpServletRequest.getSession().getAttribute("IS_LOGIN");
要统一一下,要么是LOGIN,要么是IS_LOGIN
同问
登陆的那一段返回的是true ,但是在下单的那个判断的时候返回的是一个null,所以就直接打回来了
跨域问题吧
我已经知道原因了
一、用老师提供的baseController,里面会捕捉预期之外的异常,所以你不能在控制台看到任何错误信息
二、我把extend baseController去掉之后发现了,我原先的订单表叫order,而order在mysql中是关键字,所以逆向生成的sql语句会出问题,我把表明改了就好了
可恶,困了我好几个小时
login打错了。。。
解决了嘛?我也是跨域问题一直解决不了。session里面存的东西拿不到
一样的问题!
解决。
听课不够仔细,没看到老师在sequence_info里面插入了一条数据
我觉得这个问题就是,在去session的时候没取到值,返回给你的是一个null,所以就没有成功 我的也是这样的
解决了吗
失效是没开加速器,开加速器就好了
看关键词“Result Maps collection already contains value for com.asia.miaosha.Dao.UserDOMapper.BaseResultMap”
应该是你UserDOMapper.xml下面的BaseResultMap重复了
解决了
在ajax请求上加
xhrFields: {
withCredentials: true
},crossDomain: true,
就行了
我感觉可以
解决了,原来是没有删除
set stock = stock - #{amount},
这的逗号
可以问问怎么解决的吗
按道理说肯定有的,那是得请求量很大的情况下才会出现的
登陆失败,报空指针
你好,请问是设置哪里的Init value呢?
找到原因了,注解里create少打了e 太扎心了