java - ajax post提交error 415 Unsupported Media Type

查看:482
本文介绍了java - ajax post提交error 415 Unsupported Media Type的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

做程序最怕的就是一样的代码,不一样的结果.真的火大
ajax提交415 error

很郁闷的是,同样的请求方式,别的方法就行,这个不行....
发生错误的调用过程图片:

正确的调用过程图片:

都用同一种写法,为什么会有成功跟失败的两种结果呢?
错误的后台处理代码:

    @RequestMapping(value = "add",method = RequestMethod.POST)
    @ResponseBody
    public ResultBean add(HttpServletRequest request,NdpApply ndpApply) {
        Account account = loadAccountFromSession(request);
        if (account == null) {
            return createdResultBean("0",null,"");
        }
        NonDirectoryProcurementApply apply = ndpApply.getApply();
        if(apply==null){
            return createdResultBean(ERROR,null,"添加失败");
        }
        apply.setCreatorName(account.getAccountName());
        apply.setCreateTime(new Date());
        apply.setDeleteStatus(false);
        apply.setStatus(NonDirectoryProcurementApplyStatusEnum.WAIT_COMMIT.getCode());

        nonDirectoryProcurementApplyMapper.insertSelective(apply);
        if(ndpApply.getAttachmentList()!=null&&ndpApply.getAttachmentList().size()>0){
            nonDirectoryProcurementApplyAttachmentMapper.batchInsert(ndpApply.getAttachmentList());
        }
        return createdResultBean(SUCCESS,apply.getId(),"添加成功");
    }
    

--------------------------------------------------------------------
正确的后台处理代码:

@RequestMapping(value = "/update",method = RequestMethod.POST)
@ResponseBody
public ResultBean update(HttpServletRequest request,ApprovalNodeTypeListVo approvalNodeTypes) throws Exception {
    Long tenantId = loadAccountFromSession(request).getTenantId();
    ApprovalType approvalType = approvalTypeService.selectByTypeCode(tenantId,approvalNodeTypes.getTypeCode());
    Long typeId = approvalType.getId();
   
    approvalNodeTypeService.deleteByTypeId(typeId);

    
    if(approvalNodeTypes!=null&&approvalNodeTypes.getApprovalNodeTypes()!=null&&approvalNodeTypes.getApprovalNodeTypes().size()>0){
        for(ApprovalNodeType nodeType:approvalNodeTypes.getApprovalNodeTypes()){
            nodeType.setApprovalTypeId(typeId);
        }
        approvalNodeTypeService.batchInsert(approvalNodeTypes.getApprovalNodeTypes());
    }

    return createdResultBean(SUCCESS,null,"修改成功");
}


------------------------------------------------------------------------------

错误的请求入参:

@Getter
@Setter
public class NdpApply {

   NonDirectoryProcurementApply nonDirectoryProcurementApply;
   List<NonDirectoryProcurementApplyAttachment> attachmentList;

}


正确的请求入参:

@Getter
@Setter
public class ApprovalNodeTypeListVo {
    List<ApprovalNodeType> approvalNodeTypes;
    Integer typeCode;
}


    求大神帮忙解答疑惑,我不想用设置'Content-Type','application/json' 这种方式,只想搞明白,为什么同样的请求方法有不同的结果?

解决方案

你把mvc的log设置为debug,分析下错误发生的地方,同时看看filter链和handler是否正确映射到你写的方法上,猜测可能映射到其他方法上了。

这篇关于java - ajax post提交error 415 Unsupported Media Type的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆