记一次ajax的404解决经历

前台ajax一直报404,后台方法断点根本进不去,搞了好久,百思不得其解。

参数的console.log和报错信息如下:

ajax方法如下:

$.ajax({
				      type: 'POST',
				  	  url: "${ctx }/manage/submitPublicClass",
				  	  /* dataType: "json", */
				  	  data :$('#publicClassId').serialize(),
				  	  success: function(result) {
				  		  if(toPage==0){
				  			 //保存则跳转列表页
				  			location.href="${ctx}/manage/publicClassListByPage";
				  		  }else if(toPage==1){
				  			//预览则跳转预览页  
				  			location.href="${ctx}/manage/toUpdatePublicClass?id="+result.msg;
				  		  }
					  },error:function(result){
					  }
				  	}) 

后台方法如下:

@RequestMapping("/manage/submitPublicClass")
@ResponseBody
    public Response<String> submitPublicClass(PublicClassInsertVo publicClassInsertVo,Long fileId){
		.......
			return res;
	}

vo类如下:

@Data
public class PublicClassInsertVo implements Serializable {


	private static final long serialVersionUID = 1L;
	private PublicClass publicClass;
	private List<PlanAuthority> planAuthorityList;
	private String[] planOrCourseId; //学习计划或基础课程ID
	private String type; //学习计划或基础课程
	private String studyPlanName; //学习计划名称
	private String studyPlanDescription; //学习计划描述
}

最后进去chrome的network看参数才发现:


这个地方的select选择值居然是“请选择”!!!!后台接受参数肯定报错了。

前台这个select框是这样写的:

<select name="publicClass.certificationId">
       <option>请选择</option>
        <option value="1" <c:if test="${publicClass.certificationId==1 }">selected</c:if>>1</option>
        <option value="2" <c:if test="${publicClass.certificationId==2 }">selected</c:if>>2</option>
 </select>

请选择那个下拉框没有写value属性,若被选中则值就是“请选择”,所以出错了。

应修改为

<option value="">请选择</option>

猜你喜欢

转载自blog.csdn.net/xuanwugang/article/details/80249835
今日推荐