技术库 > jQuery

jquery ajax satus为200却出现错误

技术库:tec.5lulu.com

1 jqueryajax请求的主要参数

from:tec.5lulu.com

beforeSend:发送ajax请求之前

success:发送ajax请求成功

error:发送ajax请求错误,通常是网络失去连接、服务器出错、后台方法错误等造成的

2 目前的现象

再现一次ajax请求,以下仅提供截图。 

$(function()
{
	$.ajax(
	{
		url:location.href,
		dataType:'json',
		type:'post',
		data:{action:'_yundanran-all-cat'},
		beforeSend:function()
		{
			console.log('beforeSend');
		},
		success:function()
		{
			console.log('success');
		},
		error:function()
		{
			console.log('error');
		},
		complete:function()
		{
			console.log('complete');
		}
	});
});

您可以复制这一段代码到控制台运行试试,返回的结果是这样的:

如图红色选择的区域,出现error,说明jqueryajax请求失败,失败的代码是textstatus:parsererror,那么我们可以看下实际的请求是怎样的:

jquery ajax satus为200却出现错误,by 5lulu.com

如果红色的标记,请求状态是200,表明请求成功,并且已经正确发送了参数action。看下返回的结果是怎样的:

jquery ajax satus为200却出现错误,by 5lulu.com

返回的结果确实是对的。

这样就很奇怪了,明确ajax请求正确,并且正确的返回了内容。但jqueryajax函数里却判断的是错误的请求。并且这种怪现象是从昨晚(2012年11月6日)开始的,之前一直很正常的。

3 解决方案

  • 1、删除后台程序的输出部分
  • 2、在ajax的输出结尾加上exit();防止输出额外内容。

如: 

// json格式头信息
header("Content-Type: application/json");
 
// 输出json内容
echo json_encode($json);
 
// exit结束程序运行
exit;

jquery ajax satus为200却出现错误


标签: jquery json ajax log本文链接 http://tec.5lulu.com/detail/102p2n21a2nsg8tfd.html

我来评分 :6.1
0

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com