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条)

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面