loubobooo 2017-04-21 04:46 采纳率: 66.7%
浏览 1839
已采纳

后台代码返回json数据没有接收到?

这是JS代码
var loading = new Loading();
var layer = new Layer();
$('Account').onclick = function(e){
var newProducts = products.map(function(arr){
return {'id':arr.id,'number':arr.num};
});
console.log(newProducts);
var ele = e.target;
layer.reset({
content:'确认购买吗?',
onconfirm:function(){
layer.hide();
loading.show();

                var xhr = new XMLHttpRequest();
                var data = JSON.stringify(newProducts);
                xhr.onreadystatechange = function(){
                     if(xhr.readyState == 4){
                            var status = xhr.status;
                            if(status >= 200 && status < 300 || status == 304){
                                var json = JSON.parse(xhr.responseText);
                                if(json && json.code == 200){
                                    loading.result('购买成功',function(){location.href = './account.html';});
                                    util.deleteCookie(name);
                                }else{
                                    alert(json.message);
                                }
                            }else{
                                loading.result(message||'购买失败');
                            }
                        }
                };
                 xhr.open('post','/api/buy');
                 xhr.setRequestHeader('Content-Type','application/json');
                 xhr.send(data);
            }.bind(this)
        }).show();
        return;
};
  • 写回答

7条回答 默认 最新

  • loubobooo 2017-04-21 04:47
    关注

    @Controller
    下面是java代码:
    @RequestMapping(value = "/api")
    public class BuyApiController {

    @Autowired
    TransactionService transactionServiceImpl;
    
    @ResponseBody
    @RequestMapping(value = "/buy",method= RequestMethod.POST,produces = MediaType.JSON)
    public JsonResult api_buy(HttpSession httpSession,
            @RequestParam("id") Long product_id)
    {
        System.out.println("Class BuyApiController Method api_buy");
        System.out.println("[product_id]:" + product_id);
    
        //session
        System.out.println("[session.id]:" + httpSession.getId());
        UserVO userVO = (UserVO) httpSession.getAttribute("user");
    
        JsonResult jsonResult = new JsonResult();
        if(product_id == null)
        {
            //请求参数有错误 http status code is 400
            jsonResult.setCode("400");
            jsonResult.setMessage("购买失败");
            jsonResult.setResult(false);
        }
        else
        {
            if(userVO == null)
            {
                //401 Unauthorized当前请求需要验证
                jsonResult.setCode("401");
                jsonResult.setMessage("购买失败");
                jsonResult.setResult(false);
            }
            else if(userVO.getUsertype() == 0)
            {
                //buy
                try {
                    this.transactionServiceImpl.buy(userVO, product_id);
    
                    jsonResult.setCode("200");
                    jsonResult.setMessage("购买成功");
                    jsonResult.setResult(true);
                }
                catch (Exception e)
                {
                    System.out.println("[Exception]:" + e.toString());
                    jsonResult.setCode("400");
                    jsonResult.setMessage("购买失败");
                    jsonResult.setResult(false);
                }
            }
            else if(userVO.getUsertype() == 1)
            {
                //403 Forbidden,当卖家点击进入购买时,则发生没有权限,导致操作拒绝
                jsonResult.setCode("403");
                jsonResult.setMessage("购买失败");
                jsonResult.setResult(false);
            }
            else
            {
                //403 Forbidden未知身份发生购买,拒绝
                jsonResult.setCode("403");
                jsonResult.setMessage("购买失败");
                jsonResult.setResult(false);
            }
        }
    
        return jsonResult;
    }
    

    }

    后台代码返回json数据没有接收到?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料