ajax请求返回状态为200但还是进入error事件

最近遇到一个问题,发送一个ajax请求,请求成功了,并且放回状态为200,但是就是不进入success事件,添加error事件竟进入了error事件。

代码如下:

$.ajax({
	url:$WEB_ROOT_PATH+"/dataLevel/dataLevelCtrl.htm?BLHMI=findBasicDataLevel",
	type:"post",
	dataType:"json",
	async:false,
	success:function(data){
		var dataScore = data;
	},error:function(){
		alert("出错啦!");
	}
});

出错原因:dataType:"json",而后台返回的数据不符合json规范。


解决方法:先将dataType设置为text,这样就可以进入success方法了,查看data数据究竟是什么。

我的data为:{"success":success},可以看出第二个success没有引号包裹,不符合json规范,故而不能转换为json对象。

之后的解决方法就很好办了。一种是修改后台返回值,二种是直接解析text返回的值。


  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
一个客户端的验证小程序ajax function Go() { //第一步 初始化 createXMLHttpRequest(); //第二步 取得表单中需要的数据 var newName =document.f3.uname.value; //第三步 建立要连接的URL并打开服务器的连接(并传值) var url = "regServer.jsp?uname="+newName; //var url="regServer.jsp"; req.open("POST",url); //第四步 设置服务器在完成后要运行的函数(设置回调函数) req.onreadystatechange = getReadyStateHandler; //req.onreadystatechange = getReadyStateHandler(); //req.onreadystatechange = getReadyStateHandler(req,responseXmlHandler); //设置头信息,用send()传值如果没有这句话传值将为null //req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //第五步 发送请求 (输入数据) req.send(); //var newName ="uname=" + document.f3.uname.value; //req.send(newName); } //创建XMLHttpRequest对象 function createXMLHttpRequest() { if(window.XMLHttpRequest) { //Mozilla 浏览器 req = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE浏览器 try { //较新版本的 req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { //低版本的 req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } } // 第六步 编写回调函数,处理服务器返回的结果 function getReadyStateHandler() { //function getReadyStateHandler(req, responseXmlHandler) { // Return an anonymous function that listens to the XMLHttpRequest instance //return function () { //判断status对象状态 if (req.readyState == 4) { // 信息已经成功返回 if (req.status == 200) { var reqtxt = req.responseText; //处理服务器返回的结果 var showMsgArea = document.getElementById("msg");//找到要显示服务器信息的节点 showMsgArea.innerHTML = reqtxt;//设置显示信息 } else { //HTTP问题 alert("HTTP error "+req.status+": "+req.statusText); } } } </script>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值