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

 更新时间:2018年01月18日 14:46:33   作者:xcmercy  
下面小编就为大家分享一篇Ajax请求发送成功但不进success的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

前端:

$.ajax({
 type : "get",
 data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
 url : "${ctp}/ViewOperate/ShowViewSql",
 dataType : "json",
 success : function(data){
   console.log(data);
   layer.alert(data,{
     skin: 'layui-layer-molv'
   });
 }
 error : function(data){
   layer.alert("进入了error方法",{
     skin: 'layui-layer-molv'
   });
 }
});

后端:

@RequestMapping(value="/ShowViewSql",method=RequestMethod.GET)
@ResponseBody
public String showCreateViewSql(@RequestParam(value="dbId",required=false)Integer dbId,
   @RequestParam(value="viewId",required=false)Integer viewId) {
 return "abc";
}

原因:后台返回的json数据是一个纯String类型的对象时,前端dataType属性设置为json后,会认为这个由String对象转换的json数据格式不是标准的json格式,所以就去执行error对应的方法了。

解决: 后端不用改,只需要把前端ajax请求中的dataType属性设置为text即可

$.ajax({
   type : "get",
   data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
   url : "${ctp}/ViewOperate/ShowViewSql",
   dataType : "text",
   success : function(data){
     console.log(data);
     layer.alert(data,{
       skin: 'layui-layer-molv'
     });
   }
   error : function(data){
     layer.alert("进入了error方法",{
       skin: 'layui-layer-molv'
     });
   }
});

特殊情况:当后端返回的json数字是类似 “1”、”2”、”22”、”232123”、”-1”、 “232123.44” 数字字符串的时候,前端dataType属性设置为json时,也能正常进入success方法,原因不明。

以上这篇Ajax请求发送成功但不进success的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决ajax提交到后台数据成功但返回不走success而走的error问题

    解决ajax提交到后台数据成功但返回不走success而走的error问题

    今天小编就为大家分享一篇解决ajax提交到后台数据成功但返回不走success而走的error问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 使用ajax技术实现txt弹出在页面上的方法

    使用ajax技术实现txt弹出在页面上的方法

    下面小编就为大家带来一篇使用ajax技术实现txt弹出在页面上的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • DELETE 请求如何通过ajax进行发送(方法小结)

    DELETE 请求如何通过ajax进行发送(方法小结)

    DELETE 请求用于向服务器发送删除资源的请求,它是 RESTful API 中的一个重要方法,用于删除指定的资源,本文给大家介绍DELETE 请求如何通过ajax进行发送,感兴趣的朋友一起看看吧
    2023-11-11
  • AJAX跨域问题解决方案详解

    AJAX跨域问题解决方案详解

    从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,这篇文章主要介绍了AJAX跨域问题的解决方案
    2022-08-08
  • Ajax动态为下拉列表添加数据的实现方法

    Ajax动态为下拉列表添加数据的实现方法

    这篇文章主要介绍了Ajax动态为下拉列表添加数据的实现方法,需要的朋友可以参考下
    2017-01-01
  • ajax 防止用户反复提交的2种解决方案

    ajax 防止用户反复提交的2种解决方案

    ajax 防止重复提交可以通过在服务器端加载方法或直接写在页面脚本里,具体实现如下,遇到重复提交情况的朋友可以参考下,希望对大家有所帮助
    2013-07-07
  • 深入浅析Jsonp解决ajax跨域问题

    深入浅析Jsonp解决ajax跨域问题

    这篇文章主要介绍了深入浅析Jsonp解决ajax跨域问题的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • Ajax基础详解教程(一)

    Ajax基础详解教程(一)

    ajax技术在前端应用开发中经常会用到,是必须要掌握的知识。下面脚本之家小编给大家带来了Ajax基础详解教程(一),感兴趣的朋友跟着一起学习吧
    2016-06-06
  • 关于二次封装jquery ajax办法示例详解

    关于二次封装jquery ajax办法示例详解

    Ajax 的全称是Asynchronous JavaScript and XML 异步的javaScript和XML,下面这篇文章主要给大家介绍了关于二次封装jquery ajax办法示例,文中通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-07-07
  • AJAX如何实现无刷新登录功能

    AJAX如何实现无刷新登录功能

    点击登录按钮时弹出登录窗口,输入正确的用户名密码后点击登录则登录窗口关闭,状态改为当前用户名.这篇文章主要介绍了AJAX如何实现无刷新登录功能,需要的朋友参考下
    2017-01-01

最新评论