ajax返回问题

weixin_42434031 2019-01-14 01:41:20
前台ajax访问后台(去除这个效果一样 contentType:"text/html;charset=utf8", )

$.ajax({
type: "POST",//方法类型
dataType:"json",
contentType:"text/html;charset=utf8",
url: "updatePassword.do?oldpassword="+oldpassword+"&newpassword="+password1,
/* data:{oldpassword: oldpassword,newpassword: password}, */
function(data){
layer.msg(data.msg, {anim: 6});
}
});

这个url进了后台(ssm)断点,也正常return回去了。但是ajax回调没有拿到数据直接报错
我把这串url在浏览器上直接打开可以拿到json数据,但是json数据被<pre>标签包裹着如图我在怀疑是不是因为放回的数据被<pre>包裹着,才导致ajax无法进入回调,麻烦论坛的大神帮忙看一下(好像我的后台返回的json数据都会带上<pre>标签,我看了别人的url返回的数据不带<pre>标签,这个该怎么解决)
...全文
1157 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是你晶爷 2019-01-23
  • 打赏
  • 举报
回复
最近也碰到类似的问题,后台返回的json数据被浏览器重新封装后,加上了<pre>标签。可将服务器返回数据类型设置为 dataType:"text/html",并且将返回结果用正则表达式过滤 r = $.parseJSON(r.replace(/<.*?>/ig,"")); 可参考如下代码:
$.ajaxFileUpload({  
	url:addUrl,  
	secureuri:false,  
	fileElementId:['excelFile'],  
	dialog:d,
        dataType:"text/html",  
	success:function(r, status){ 
		r = $.parseJSON(r.replace(/<.*?>/ig,""));
		if (r.success) {
			d.dialog('destroy');
			$.messager.alert('提示', '添加成功');
		}else{
			       if(r.msg!=undefined)
			               $.messager.alert('提示', r.msg);
				else
									toLogin();
		}
			$('#questionDatagrid').datagrid('reload');
			d.dialog('destroy');
						},  
	error:function(data, status, e){  
			$.messager.alert('提示', '添加失败:'+e)
						}
});
penglei520 2019-01-22
  • 打赏
  • 举报
回复
学习学习了!
码匠笔记 2019-01-19
  • 打赏
  • 举报
回复
不知道为什么上传不了图片 左边的是console,右边的是那个1
码匠笔记 2019-01-19
  • 打赏
  • 举报
回复

如图
DEBUG的思路,你地址请求得到了结果,那么请求肯定没有问题,图上面右边的箭头是一个错误提示,点击左边箭头的console ,看一下什么错误,也许是layer.msg 里面的异常呢?

ナミ 2019-01-19
  • 打赏
  • 举报
回复
先确定下服务器那边返回的是什么东西、确定是json?
u012743612 2019-01-17
  • 打赏
  • 举报
回复
$.ajax({
type: "POST",//方法类型
dataType:"json",
contentType:"text/html;charset=utf8",
url: "updatePassword.do?oldpassword="+oldpassword+"&newpassword="+password1,
/* data:{oldpassword: oldpassword,newpassword: password}, */
success:function(data){
layer.msg(data.msg, {anim: 6});
}
});
ajax的参数是个对象,对象中回调函数的success键没写。
图图是只猫 2019-01-17
  • 打赏
  • 举报
回复
@requestbody返回一个普通对象直接就转成json
qq_38735045 2019-01-16
  • 打赏
  • 举报
回复
是直接进不去function(){},还是进去了没值在前台展示不出来
ok35613 2019-01-16
  • 打赏
  • 举报
回复
加个ajax的同步
weixin_42434031 2019-01-15
  • 打赏
  • 举报
回复
引用 12 楼 小小菜鸟肥 的回复:
将你最初的代码,返回return jsonObject.toString试试。
一样的问题
小小菜鸟肥 2019-01-15
  • 打赏
  • 举报
回复
将你最初的代码,返回return jsonObject.toString试试。
Bestest~ 2019-01-15
  • 打赏
  • 举报
回复
自定义数据直接传输过程中需要是字符串的(json字符串),对象是获取不到的。 例如:https://blog.csdn.net/CEVERY/article/details/86216828 前端对象数组传递给后端需要把对象数组转换为json字符串。 同样的,后端json对象需要转换为json字符串后再传回给前端ajax获取数据。 获取到的json字符串根据自己需要就行处理。
a487755661 2019-01-15
  • 打赏
  • 举报
回复
解决方案参考https://blog.csdn.net/qq_35626760/article/details/86491369
sherch123 2019-01-15
  • 打赏
  • 举报
回复
解决方案参考https://blog.csdn.net/qq_35626760/article/details/86491369
weixin_42434031 2019-01-15
  • 打赏
  • 举报
回复
已解决,解决方案参考https://blog.csdn.net/qq_35626760/article/details/86491369
Timor_D 2019-01-15
  • 打赏
  • 举报
回复
contentType: "application/json;charset=utf-8",


ajax请求 哪里改下试试
weixin_42434031 2019-01-14
  • 打赏
  • 举报
回复
引用 9 楼 Kien_tang 的回复:
你返回改成json呢
还是不行
weixin_42434031 2019-01-14
  • 打赏
  • 举报
回复
引用 8 楼 qq_38735045 的回复:
直接用$.post("url","参数列表",function(){},"json");里面传四个参数,感觉会比较好一点
还是不行
Kien.tang 2019-01-14
  • 打赏
  • 举报
回复
你返回改成json呢
qq_38735045 2019-01-14
  • 打赏
  • 举报
回复
直接用$.post("url","参数列表",function(){},"json");里面传四个参数,感觉会比较好一点
加载更多回复(7)

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧