ajax 处理请求成功却无法进入 success方法

版权声明:借鉴时注明出处就行 https://blog.csdn.net/weixin_42144379/article/details/84898930

今天写页面的时候遇到一个奇怪的问题

前端这么写的:

$("#submitMsg").click(
		function () {
			console.log("进入事件");
	 		$.ajax({
 			type:'post',
			data:$("#form-msg").serialize(),
			url:"/jacktu/main/send_msg.do",
 			dataType:"json",
 			success:function(data){
 				if(data=="successful"){
 					$("#aeraMsg").val("").focus();
					alert("提交成功!"); 
 				}else{
 					alert("提交失败!");
 				}
	 		},error:function(){
	 				alert("错误!");
	 		}
 			})
		}		
	);

后端处理:

@RequestMapping(value="/send_msg",method=RequestMethod.POST)
	@ResponseBody
	public String get_msg(HttpServletResponse response,HttpServletRequest request) {
		String leave_msg = request.getParameter("leave_msg");
		String user_name = request.getParameter("user_name");
		mainservice.saveMsg(user_name,leave_msg);
		return "successful";
	}

每次提交,后台处理请求都成功走到了  successful 这一行

但是,前端接收数据后 却一直走到 error 的 function

研究了一会后才发现,自从 jquery 1.4以后 对于 json 数据格式更加严谨

我前端指定 dataType:"json" 但是 后端 只返回一个 String ,显然不符合要求

所以我把前端的 dataType:"json" 改为:  dataType:"text" ,至此问题解决

参考: jQuery ajax - ajax() 方法,找到dataType段落

猜你喜欢

转载自blog.csdn.net/weixin_42144379/article/details/84898930