使用Ajax时[object%20object] 报错的解决方案

Posted Windows_XP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Ajax时[object%20object] 报错的解决方案相关的知识,希望对你有一定的参考价值。

踩坑经过

最近初学Ajax,当我想把Ajax应用到自己项目中的时候,没有达到理想的效果,还报了如下错误:

点击图中报错,产生报错页面如下:

当时写的Ajax如下:

// 提交修改密码表单
$("#changePasseword").click(function(){
	$.post({
		url: "${pageContext.request.contextPath }/ChangePasswordServlet",
		data:$("#changePasswordForm").serialize(),
		success:function(data){
			if(data=="修改成功"){
				alert("修改成功"); 
				$("#mainFrame").load("login.jsp");
			}else if(data=="用户未登录"){
				alert("用户未登录");
				$("#mainFrame").load("login.jsp");
			}else{ alert("修改失败"); }
		}
	});
});

上面写的内容也很简单,就是用jQuery中Ajax的post方法去提交修改密码的表单。按照语法来说,我写的语法并没有问题。在查了jQuery的api文档后,我怕决定改用向后台发送请求通用的$.ajax代替$.post,然后增加type属性,type="post"。然后问题就解决了。

解决办法:

1、用$.ajax代替$.post,增加type属性,type="post"

上面的代码,修改过后如下:

// 提交修改密码表单
$("#changePasseword").click(function(){
	$.ajax({
		type: "post",
		url: "${pageContext.request.contextPath }/ChangePasswordServlet",
		data:$("#changePasswordForm").serialize(),
		success:function(data){
			if(data=="修改成功"){
				alert("修改成功"); 
				$("#mainFrame").load("login.jsp");
			}else if(data=="用户未登录"){
				alert("用户未登录");
				$("#mainFrame").load("login.jsp");
			}else{ alert("修改失败"); }
		}
	});
});

2、在我百度查看别人的博客时,发现了一个老哥的博客中还提到了jQuery版本过低的情况,这老哥的博客原文连接:(https://www.cnblogs.com/jinghun/p/6669623.html),我使用的jQuery版本是1.11.3,若不能解决,可以尝试使用新版本的jQuery

以上是关于使用Ajax时[object%20object] 报错的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

当使用AJAX从flask中返回值时,它说[Object, Object]。

删除 http://localhost:8000/product/[object%20Object] 500(内部服务器错误)

使用 jquery ajax 从验证中取回对象 Object

调用 axios.get() 时无法获取 /[object%20Object]

使用 Ajax 从 UIWebView 调用 Objective C 函数

使用$.post和action或servlet交互 URL出现 http://localhost:8080/../[object%20Object] 错误的问题解决