`
wkf41068
  • 浏览: 453063 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ajax 请求返回200 但是不进success--3

 
阅读更多
 
最近在做一个ajax请求的时候,再次碰到了ajax请求返回的状态码是200但是没有进入到success:function(){}分支中去。 有些不解

 
其后台代码如下:
   public void queryMenu(){
    	String areaId = request.getParameter("areaId");
    	HtmlAreaBean bean=htmlProxy.getHtmlAreaInfoById(areaId);
    	try {
    		PrintWriter out= response.getWriter();
    		out.write(bean.getContent());
    		out.flush();
    		out.close();
		} catch (IOException e) {
			LOG.error(e.getMessage(), e);
		}
    }

其前台代码如下:
function add_menu(classname, lang, obj){
	var param= '{"areaId":"'+menulist[classname]+lang+'"}';
	$.ajax({
		type: "POST",
		url: "Index!queryMenu",
		cache: true,
		data:  $.parseJSON(param),
		dataType: "json",
		async: false,
		success: function(data) {
			jQuery(obj).find('.menuitempanel').html(data);
		},
		error:function(XMLHttpRequest, textStatus, errorThrown){
			alert(textStatus+"     "+errorThrown);
		}
	});
}

对于JS通过FF的firebug发现控制台中出现了一个错误提示:unexpected  characters. 返回的数据不是严格的json 格式,

此时就想到了查看Java代码发现bean.getcontent()获取的Html内容中在传送到前台时,数据不是严格的Json数据导致问题

产生。



 
  解决方案有两种:
(1) 让ajax数据返回类型为text而不是json;即dataType: "text";
(2) 在java代码侧将返回的数据"data"转成标准的Json格式即可;修改如下 out.write(JSONUtil.toString(bean.getContent())); 
分享到:
评论

相关推荐

    Ajax请求发送成功但不进success的解决方法

    1.情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chrome监听请求也可以看到响应的json数据,但是就是不进success方法,反而跑到error方法中了 前端: $.ajax({ type : get, data : {'dbId'...

    jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...

    快速解决ajax请求出错状态码为0的问题

    今天在使用 ajax 向后台请求数据时出现错误,提示状态码为 0 ,后台采用的是 spring mvc 架构。 状态码为0是什么意思呢?查找了下,原来它意味着 (未初始化)即没有调用到send()方法,我原来代码如下 : $.ajax...

    解决AJAX返回状态200没有调用success的问题

    今天在做个demo的时候,发现ajax获取状态为200,可是却没有执行正确的方法。 SpringMVC + ajax +jquery 后来发现SpringMVC利用注解@ResponseBody返回String时,浏览器显示200状态码,... 您可能感兴趣的文章:Ajax请求发

    解决ajax请求后台,有时收不到返回值的问题

    今天小编就为大家分享一篇解决ajax请求后台,有时收不到返回值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    jquery电子文档chm

    $("#msg").ajaxSuccess(function(evt, request, settings){ $(this).append("<li>Successful Request!</li>"); }); jQuery.ajax(options) 通过 HTTP 请求加载远程数据。 jQuery 底层 AJAX 实现。简单易用的高层...

    jquery的ajax请求全面了解

    比如.ajaxComplete()——请求完成时.ajaxError()——请求失败时.ajaxSend()——在Ajax请求发送时附加一个function去执行.ajaxStart()——请求开始时,.ajaxStop()——请求结束时.ajaxSuccess()——请求成功时.load()...

    ajax请求后台接口数据与返回值处理js的实例讲解

    ajax的代码,用的是jquery的 ajax: $.ajax({ ... type: post, //请求方式是post ... success: function (data) { //成功时返回的data值,注意这个data是后台返回的值,上面的data是你要传给后台的值 co

    jquery ajax请求实例深入解析

    比如.ajaxComplete()——请求完成时.ajaxError()——请求失败时.ajaxSend()——在Ajax请求发送时附加一个function去执行.ajaxStart()——请求开始时,.ajaxStop()——请求结束时.ajaxSuccess()——请求成功时.load()...

    js与jQuery终止正在发送的ajax请求的方法

    本文实例讲述了js与jQuery终止正在发送的ajax请求的方法。分享给大家供大家参考,具体如下: 核心:调用XMLHttpRequest对象上的abort方法 jquery的ajax方法有自己的超时时间设置参数: $.ajax({type:'POST', url:'...

    通过jquery的ajax请求本地的json文件方法

    自己学习jquery的ajax的经历,记录一下 ajaxTestDemo.html 在body里面放一个id为test的div <div id=test></div> 第一步还是要先加载jquery文件 jquery.min.js [removed] $(function(){ $.ajax({ //请求方式为...

    如何将ajax请求返回的Json格式数据循环输出成table形式

    首先,Ajax请求数据,(用的是Jquery的Ajax) 代码如下: [removed] $(function(){ $(‘#test’).click(function(){ $.ajax({ url:’__APP__/Article/jsonTest’, type:’post’, success:function(data){ var item;...

    jquery的ajax异步请求接收返回json数据实例

    jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以。 代码示例如下: 代码如下: $(‘#send’).click...

    人工智能-项目实践-检索系统-基于lucene全文检索引擎实现的短文本匹配系统

    简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState): 0-未初始化、1-正在初始化、2-发送数据、3-正在发送数据、4-完成。 当XMLHttpRequest.readyState为4时,表示ajax请求已经完成...

    防止页面url缓存中ajax中post请求的处理方法

    一般我们在开发中经常会用到Ajax请求,异步发送请求,然后获取我们想要的数据,在Ajax中使用Get请求数据不会有页面缓存的问题,而使用POST请求可是有时候页面会缓存我们提交的信息,导致我们发送的异步请求不能正确...

    在实战中可能碰到的几种ajax请求方法详解

    ajax请求方法如下 一、普通的ajax,async即同步异步处理,success之后,会有data返回值,status请求状态,xhr封装的是请求头,但要注意是的是,并不是所有的请求头信息都能获取到的,比如center-l

    Jquery版本导致Ajax不执行success回调函数

    项目中需要用到ajax来进行数据的请求,于是三下五除二的将ajax代码拷贝到项目中,前端,后台数据处理完毕,测试(心想可以休息下下了),谁知数据成功返回、前端没报错,后台也没错,硬是没有执行success回调函数,...

    用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决方案)

    前端小同学在做页面的时候,犯了个常见的错误:把多个Ajax请求顺序着写下来了,而后面的请求,对前面请求的返回结果,是有依赖的。如下面的代码所示: var someData; $.ajax({ url: '/prefix/entity1/action1', ...

    谈谈Jquery ajax中success和complete有哪些不同点

    废话不多说了,先给大家贴一段代码看看吧, $.ajax({ type: "post", url: url, dataType:'html', success: function(data) { }, complete: function(XMLHttpRequest, textStatus) { }, error: function(){} }...

    JQuery ajax中error返回错误及一直返回error的解答

     Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了  于时我在ajax中进行了处理  async: false,结果发现提交正常的数据返回是正常的没有错误。  ...

Global site tag (gtag.js) - Google Analytics