ajax一直不进入success:function()总是提示获取不到数据 5C

public class UserDaoImpl implements UserDao {
@Override
public User login(User user) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = BaseDao.getCon();
String sql = "select * from user where name=? and password=?";
ps = con.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
rs = ps.executeQuery();
User users;
if (rs.next()) {
users = new User();
System.out.println();
users.setId(rs.getInt("id"));
users.setName(rs.getString("name"));
users.setPassword(rs.getString("password"));
users.setEmail(rs.getString("email"));
users.setPhone(rs.getString("phone"));
users.setMoney(rs.getString("money"));
return users;
} else {
return null;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
public boolean register(User user) {
    String sql = "insert into user values(0,?,?,?,?,?) ";
    List<Object> list = new ArrayList<Object>();
    list.add(user.getName());
    list.add(user.getPassword());
    list.add(user.getEmail());
    list.add(user.getPhone());
    list.add(user.getMoney());

    boolean flag = BaseDao.addUpdateDelete(sql, list.toArray());
    if (flag) {
        return true;
    } else {
        return false;
    }
}

public ArrayList<User> query() {
    Connection con = null;
    ArrayList<User> barArr = new ArrayList<User>();
    try {
        con = BaseDao.getCon();
        PreparedStatement stmt = con.prepareStatement("select * from user");
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {
            User bar = new User();
            bar.setName(rs.getString("name"));
            bar.setMoney(rs.getString("money"));
            barArr.add(bar);
        }
        con.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return barArr;
}

}

@WebServlet("/user/userlogin")
public class UserLoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    this.doPost(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    User user = new User();
    // 获取login.jsp页面提交的账号和密码
    String name = request.getParameter("name");
    String password = request.getParameter("password");
    String money=request.getParameter("money");
    // 测试数据
    System.out.println(name + " " + password+" "+money);
    // 获取login.jsp页面提交的账号和密码设置到实体类User?
    user.setName(name);
    user.setPassword(password);
    HttpSession session = request.getSession();
    // 引入数据交互层
    UserDao dao = new UserDaoImpl();
    User us = dao.login(user);
    // 测试返回的值
    System.out.println(us);
    if (us != null) {
        session.setAttribute("user", user);
        request.getRequestDispatcher("/index/echarts.jsp").forward(request, response);

        // request.setAttribute("info", "登录成功");
    } else {
        request.setAttribute("info", "登录失败");
        request.getRequestDispatcher("/index/info.jsp").forward(request, response);

    }

    UserDaoImpl barDao = new UserDaoImpl();
    ArrayList<User> barArr = barDao.query();
    response.setContentType("text/html; charset=utf-8");
    JSONArray json = JSONArray.fromObject(barArr);
    System.out.println("得到的数据:"+json.toString());
    PrintWriter writer = response.getWriter();
    writer.println(json);
    writer.flush();
    writer.close();
}

}

public class BaseDao {

private static String driver;
private static String url;
private static String user;
private static String password;
private static String money;

static {
    driver = ResourceBundle.getBundle("db").getString("driver");
    url = ResourceBundle.getBundle("db").getString("url");
    user = ResourceBundle.getBundle("db").getString("user");
    password = ResourceBundle.getBundle("db").getString("password");
}

public static Connection getCon() throws ClassNotFoundException, SQLException {
    Class.forName(driver);
    System.out.println("测试加载数据库成功");
    Connection con = DriverManager.getConnection(url, user, password);
    System.out.println("测试数据库连接成功");
    return con;
}

public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
    if (rs != null) {// 关闭
        try {
            rs.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    if (ps != null) {
        try {
            ps.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    if (con != null) {
        try {
            con.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

public static boolean addUpdateDelete(String sql, Object[] arr) {
    Connection con = null;
    PreparedStatement ps = null;
    try {
        con = BaseDao.getCon();// 第一步 :连接数据库的操作
        ps = con.prepareStatement(sql);// 第二步:预编译
        // 第三步:设置值
        if (arr != null && arr.length != 0) {
            for (int i = 0; i < arr.length; i++) {
                ps.setObject(i + 1, arr[i]);
            }
        }
        int count = ps.executeUpdate();// 第四步:执行sql语句
        if (count > 0) {
            return true;
        } else {
            return false;
        }
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return false;
}

}

<%@page import="org.apache.catalina.connector.Request"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



Hello ECharts



您的用户名是: ${user.name}

<br> function loadData(option) {</p> <pre><code> $.ajax({ type : &#39;post&#39;, //传输类型 async : false, url : &#39;bar.do&#39;, //web.xml中注册的Servlet的url-pattern data : { &quot;name&quot; : name }, dataType : &#39;json&#39;, //返回数据形式为json success : function(result) { if (result) { option.legend.data = []; option.series[0].data = []; for (var i = 0; i &lt; result.length; i++) { alert(result[i].name + &quot;---&quot; + result[i].money); option.legend.data.push(result[i].name); option.series[0].data.push({ name : result[i].name, value : result[i].money }); } myChart.setOption(option); } }, error : function(errorMsg) { alert(&quot;加载数据失败&quot;+errorMsg); } });//AJAX }//loadData() var myChart = echarts.init(document.getElementById(&#39;myDiv&#39;)); var option = { title : { text : &#39;某站点用户访问来源&#39;, subtext : &#39;纯属虚构&#39;, x : &#39;center&#39; }, tooltip : { trigger : &#39;item&#39;, formatter : &quot;{a} {b} : {c} ({d}%)&quot; }, legend : { orient : &#39;vertical&#39;, left : &#39;left&#39;, data : [] }, series : [ { name : &#39;访问来源&#39;, type : &#39;pie&#39;, radius : &#39;55%&#39;, center : [ &#39;50%&#39;, &#39;60%&#39; ], data : [], itemStyle : { emphasis : { shadowBlur : 10, shadowOffsetX : 0, shadowColor : &#39;rgba(0, 0, 0, 0.5)&#39; } } } ] }; //加载数据到option loadData(option); //设置option &lt;/script&gt; </code></pre> <p></body></p>

24个回答

老哥们需要补什么代码 说一声 我在线等

<%@page import="org.apache.catalina.connector.Request"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



Hello ECharts



您的用户名是: ${user.name}

<br> function loadData(option) {</p> <pre><code> $.ajax({ type : &#39;post&#39;, //传输类型 async : false, url : &#39;bar.do&#39;, //web.xml中注册的Servlet的url-pattern data : { &quot;name&quot; : name }, dataType : &#39;json&#39;, //返回数据形式为json success : function(result) { if (result) { option.legend.data = []; option.series[0].data = []; for (var i = 0; i &lt; result.length; i++) { alert(result[i].name + &quot;---&quot; + result[i].money); option.legend.data.push(result[i].name); option.series[0].data.push({ name : result[i].name, value : result[i].money }); } myChart.setOption(option); } }, error : function(errorMsg) { alert(&quot;加载数据失败&quot;+errorMsg); } });//AJAX }//loadData() var myChart = echarts.init(document.getElementById(&#39;myDiv&#39;)); var option = { title : { text : &#39;某站点用户访问来源&#39;, subtext : &#39;纯属虚构&#39;, x : &#39;center&#39; }, tooltip : { trigger : &#39;item&#39;, formatter : &quot;{a} {b} : {c} ({d}%)&quot; }, legend : { orient : &#39;vertical&#39;, left : &#39;left&#39;, data : [] }, series : [ { name : &#39;访问来源&#39;, type : &#39;pie&#39;, radius : &#39;55%&#39;, center : [ &#39;50%&#39;, &#39;60%&#39; ], data : [], itemStyle : { emphasis : { shadowBlur : 10, shadowOffsetX : 0, shadowColor : &#39;rgba(0, 0, 0, 0.5)&#39; } } } ] }; //加载数据到option loadData(option); //设置option &lt;/script&gt; </code></pre> <p></body></p> <pre><code> </code></pre>

图片说明

qq_27784829
Pittttttttt 回复wpstudy: 那个似乎没影响。。我在另一个去掉“”可以运行
2 年多之前 回复
wpstudy
wpstudy 将 data中的 key值name 中的“ ”去掉,一般都是语法错误导致
2 年多之前 回复

之前我也碰到过类似的情况我的问题是ajax的type和实际RequestMapping中的method不一致导致,虽然在network中能看到这次请求是200但是老是进error方法

wpstudy
wpstudy 回复Pittttttttt: 将 data中的 key值name 中的“ ”去掉,一般都是语法错误导致
2 年多之前 回复
qq_27784829
Pittttttttt 老哥你看看我这里面一致不?
2 年多之前 回复

dataType 是 json 类型,注意返回的JSON数据是否是严格的JSON格式

wpstudy
wpstudy 将 data中的 key值name 中的“ ”去掉,一般都是语法错误导致
2 年多之前 回复
qq_27784829
Pittttttttt 取的数据库里面的值,就是一个一个"name":"dz" 这样的,我用控制台打印了
2 年多之前 回复

![图片说明](https://img-ask.csdn.net/upload/201712/27/1514342892_931176.png)<br>
图片说明

图片说明

qq_27784829
Pittttttttt 这里有了json.tostring应该 可以确定是json类型吧 还有可能啥原因呢 需要啥代码我在线补
2 年多之前 回复

这里有了json.tostring应该 可以确定是json类型吧 还有可能啥原因呢 需要啥代码我在线补

你方法返回的不是个实体吗?所以在显示的时候不应该是result.实体[i].name吗,你可以先在function里面弹窗看返回信息有没有接收到

qq_27784829
Pittttttttt 回复Odyssey_May: 控制台可以打印 数据库的数据,但是这个打印的方法和jsp页面的方法没有关系,我写在java文件里面的
2 年多之前 回复
Odyssey_May
Odyssey_May 回复Pittttttttt: 页面运行方法的时候后台能在控制台输出数据吗?如果能输出数据,说明你的路径没有错,有可能是你的前台有什么地方粗心写错了,比如标点符号写成中文的了
2 年多之前 回复
qq_27784829
Pittttttttt 加了alert(result),没反应
2 年多之前 回复
qq_27784829
Pittttttttt 回复Odyssey_May: 没反应。。。
2 年多之前 回复
Odyssey_May
Odyssey_May 回复Pittttttttt: 不是加这个弹窗,在success后面加一个alter(result)试试,这个result就是你返回的值,看看能不能在页面上显示出来
2 年多之前 回复
qq_27784829
Pittttttttt 哪个方法返回的是实体? 我在ajax上面加上alert(121) 运行的时候可以出现弹窗121
2 年多之前 回复

图片说明

gxc516
赤贯妖星 回复Pittttttttt: 肯定的。成功回调函数里的result 都换成data
2 年多之前 回复
songbaojian521
丶豆豆 json 改为 text ajax里 dataType有两种形式 一种是text 字符换 就是你后台往前台传数据的时候 你的值是字符串 ,第二种就是json, 你的页面也的text或者json在于你后台writer.println(json);里面写的是什么
2 年多之前 回复
qq_27784829
Pittttttttt 下面的if里面的也要换成data吗, 我在web.xml里面路径是/bar.do
2 年多之前 回复
共24条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
$.ajax 中的 success : function(data) 函数中接收数据问题

这是我的ajax ``` $(function() { var power; var html = ""; $.ajax({ url : "../loginAction", type : "post", dataType : "text", success : function(data) { alert("我是王晓思"+data); if (data != 1) { html += "<li><a href='../admin/userManage.jsp' target='frmright'><span>用户管理</span></a></li>" +"<li><a href='../admin/powerManage.jsp' target='frmright'><span>权限管理</span></a></li>" +"<li><a href='../admin/roleManage.jsp' target='frmright'><span>角色管理</span></a></li>" +"<li><a href='../admin/modifyPassword.jsp' target='frmright'><span>修改密码</span></a></li>" +"<li><a href='../admin/search.jsp' target='frmright'><span>统计查询</span></a></li>"; } else if(data == 2){ alert('函数执行2'); } else if(data == 3){ } else if(data == 4){ } $("#category").html(html); } }); }); ``` 这是我的action HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE); PrintWriter out = response.getWriter(); /*Map map = new HashMap(); map.put("power", "1"); JSONObject data =JSONObject.fromObject(map);*/ String data = "1"; out.println(data); return "true"; 然后我接受的数据不是 1 ,而是ajax所在的html页面,难受 ![图片说明](https://img-ask.csdn.net/upload/201705/04/1493858833_329.png)

jquery Ajax success: function(data){} data数据问题

jquery代码 [code="js"] function doTchSubmit() { $j.ajax({ type: "GET", url: "yhpb010111_loginTch", //struts2 action dataType: "json", cache: false, data: { teacherNum: $j("#teacherNum").val(), passWord: $j("#passWord").val() }, success: function(data) { var result = eval("(" + data + ")"); if(result.loginError != '') { $j("#tchMes").html(val); } } }); } [/code] yhpb010111_loginTch action中代码 [code="java"] message.put("loginError","密码错误"); //将封装的信息转成JSON数据传入前台 String result = JSONObject.fromObject(message).toString(); [/code] struts.xml配置代码 [code="xml"] <package name="default" namespace="/" extends="json-default"> <action name="yhpb010111_*" class="yhpb010111" method="{1}"> <result type="json"> <param name="root">result</param> </result> </action> </package> [/code] jsp代码 [code="html"] <s:form theme="simple" action="yhpb010111_loginTch"> <p class="middle"> <label>用户名: </label> <s:textfield id="teacherNum" name="teacherNum"/> <label>密 码: </label> <s:password id="passWord" name="passWord"/> </p> <p class="space"> <s:submit cssClass="btnLogin" value="提交" onClick="doTchSubmit()"/> </p> <div id="tchMes" class="message"></div> </s:form> [/code] 点击提交后页面跳到 [code="java"] Struts Problem Report Struts has detected an unhandled exception: Messages: org/apache/commons/lang/exception/NestableRuntimeException Stacktraces java.lang.reflect.InvocationTargetException sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236) [/code] 用火狐调试到 success: function(data) 就跳出了,data无数据

前段用ajax中data数据传不到success function(data)

已经解决,string类型的data dataType是text类型,数组的是json

ajax中success函数不执行的问题

$(document).ready(function(){ //注册 $("#signup").click(function(){ var User = $("#User").val(); var psw = $("#password").val(); if( User =='' || psw ==''){ alert("用户名及密码不能为空"); return false; }else{ $.ajax({ url: '../PHP/signup.php', type: 'post', dataType: 'json', data: { User:User, password:psw, }, success: function(){ }, }) }; }) }); 其他都没有问题,数据都写入了数据库,就是success函数不会执行,求教

ajax jsonp只执行error方法,不执行success方法如何处理?

js代码: var base = { urlHead : "http://localhost:8080/CreditWorld/" } var user = { login : function (){ $.ajax({ cache: true, type: "POST", url:base.urlHead+"userRegist", data:$('#userRegistForm').serialize(),// //data:"{}", async: false, dataType:"jsonp", //jsonp:'callback', jsonpCallback: "back", success: function(data) { alert("success" + data) }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest); } }); } } 服务器代码: public String userRegist() { result = callback+"({\"flag\":\"successfuly\"})";//返回必须是json字符串; System.out.println(result); return SUCCESS; } xml配置 <package name="json" extends="json-default" namespace="/"> <action name="userRegist" class="com.credit.action.RegistAction" method="userRegist"> <result name="success" type="json"> <param name="root">result</param> </result> </action> </package> 开发者工具查到的返回值 ![图片说明](https://img-ask.csdn.net/upload/201608/07/1470560155_895335.png)

Ajax一直都不执行success

各路大神,帮忙看下下面的代码,为什么执行后一直都是error,而不执行success呢? ``` $("#login").click(function(){ var account = $("#account"); var password = $("#password"); if(account.val() == ""){ account.focus(); return false; } if(password.val() == ""){ password.focus(); return false; } $.ajax({ url:"servlet/LoginServlet", type:"POST", data:{"account":account.val(),"password":password.val()}, dataType:"json", success:function(msg){ alert(msg); }, error:function(er){ //alert(er.message); alert("error"); } }); }); ```

关于struts2+jquery1.4.2+ajax的success捕捉不到的问题

在项目中尝试用strutst2+jquery+ajax实现新增或删除数据,struts的action中新增成功.但回到页面的jquery的success:function(){},success捕捉不到,无法进入function中.我的struts.xml里配置是result name="success",struts2的返回是success,但是返回页面中无法进入success:function(){},但如果不跑action,单独走页面,success:function(){}能够进入,把strust2和jquery整合一起就捕捉不到.不知道有没有有人遇到过这个问题,如何解决?我用的jquery1.4.2,jquery-easyui1.1.1

Ajax 处理持续响应:"success:"vs"。 "搞定"?

<div class="post-text" itemprop="text"> <p>I have been working with jQuery and AJAX for a few weeks now and I saw two different ways to 'continue' the script once the call has been made: <code>success:</code> and <code>.done</code>.</p> <p>From the synopsis from the <a href="http://api.jquery.com" rel="noreferrer">jQuery documentation</a> we get:</p> <blockquote> <p>.done(): Description: Add handlers to be called when the Deferred object is resolved.</p> <p>success: (.ajax() option): A function to be called if the request succeeds.</p> </blockquote> <p>So, both do something after the AJAX call has been completed/resolved. Can I use one or the other randomly? What is the difference and when one is used instead of the other?</p> </div> <p>转载于:https://stackoverflow.com/questions/8840257/jquery-ajax-handling-continue-responses-success-vs-done</p>

ajax的success方法参数值的问题

后台的一段代码如下: ``` int m = 0; int base_rn = new RadioDao().getRadioNumber(base); int base_cn = new CheckBoxDao().getCheckBoxNumber(base); int base_jn = new JudgeDao().getJudgeNumber(base); int base_bn = new BlankDao().getBlankNumber(base); System.out.println(base_rn); //3 if(base_rn < radio_number){ m = 1; //题库中单选题数量不足 } if(base_cn < checkbox_number){ m = 2; //题库中多选题数量不足 } if(base_jn < judge_number){ m = 3; //题库中判断题数量不足 } if(base_bn < blank_number){ m = 4; //题库中填空题数量不足 } System.out.println(m); PrintWriter out = response.getWriter(); out.write(m); ``` 所以m应该就是ajax中success方法的参数。然后执行如下前端代码: ``` $.ajax({ url : "servlet/GetPaperServlet", type : "POST", data : { "account" : account.val(), "true_name" : true_name.val(), "title" : title.val(), "base" : base.val(), "difficult" : difficult.val(), "time" : time.val(), "radio_number" : radio_number.val(), "checkbox_number" : checkbox_number.val(), "judge_number" : judge_number.val(), "blank_number" : blank_number.val(), "radio_score" : radio_score.val(), "checkbox_score" : checkbox_score.val(), "judge_score" : judge_score.val(), "blank_score" : blank_score.val(), "sum_score" : sum_score.val() }, dataType : "text", success : function(msg) { if(msg == 1){ alert("题库中单选题数量不足,请减少题量!"); return false; }else{ alert("dd"); } }, error : function(er) { alert(er.message); } }); ``` 结果一直弹出“dd”,即msg不等于1.请问各路大神该如何解决?我这里一个参数需要做4次不同的判断,求解答,谢谢大家!

ajax向后台请求数据并成功返回,但不执行success也不执行error

服务器端返回字符串类型的数据正常。前端代码如下: ``` $('#doc-vld-msg').validator({ submit: function () { var formValidity = this.isFormValid(); if (formValidity) { var progress = $.AMUI.progress; $.ajax({ type: "POST", url: "save.ashx", cache: "false", dataType: "text", data: { BicycleID: $("#doc-vld-name-2-1").val(), University: $("#doc-select-1-1").val(), Password: $("#doc-vld-age-2-1").val(), }, beforeSend: function () { progress.start(); }, success: function (result) { alert(result); window.location.href = "index.html"; }, error: function (jqXHR) { alert("发生错误:" + jqXHR.status); }, complete: function () { progress.done(); } }); } else { alert("未完成验证!"); } } }); ``` 先是做一个前台控件的验证,验证通过就发送ajax请求,我在浏览器和后台都看过是OK 200,但就是不执行success,也不执行error,我试了好多办法,发现,在if最后加一个alert()就可以执行success或者error了,代码如下: ``` $('#doc-vld-msg').validator({ submit: function () { var formValidity = this.isFormValid(); if (formValidity) { var progress = $.AMUI.progress; $.ajax({ type: "POST", url: "save.ashx", cache: "false", dataType: "text", data: { BicycleID: $("#doc-vld-name-2-1").val(), University: $("#doc-select-1-1").val(), Password: $("#doc-vld-age-2-1").val(), Random: getRandom(1000) }, beforeSend: function () { progress.start(); }, success: function (result) { alert(result); window.location.href = "index.html"; }, error: function (jqXHR) { alert("发生错误:" + jqXHR.status); }, complete: function () { progress.done(); } }); alert("数据已提交,正在查询是否能成功...");//就是添加的这一句 } else { alert("未完成验证!"); } } }); ``` 但是问题来了,他是先执行alert("数据已提交,正在查询是否能成功...");再执行success或者error,这是为什么?然后还有为什么我不添加这一句就不执行呢? 大神们,这是什么原因?我是个菜鸟,望大神解答一下。

Ajax中不执行Success方法的问题

如下代码: ``` $.ajax({ url:"servlet/StudentRegisterServlet", type:"POST", data:{"account":account.val(),"true_name":true_name.val(),"password":password.val(), "college":college.val(),"classname":classname.val(),"question":question.val(), "answer":answer.val()}, dataType:"json", success:function(msg){ alert(msg); if(msg === "register"){ window.location.href = "login.jsp"; }else{ $("#msg3").html("此学号已经注册过,请刷新页面重试!"); return false; } }, error:function(er){ alert(er.message); } }); ``` 运行后执行error,不知道是不是msg参数的原因,但是后台的Servlet可以正常执行,就是前台页面效果因为这个原因不能显示,请大家帮忙看下什么原因?或者有哪些潜在的原因?谢谢!

PHP ajax不执行success回调而是执行了error回调

``` <script> $.ajax({ url: 'ajax.php?act=personal', type: 'post', dataType: 'json', data: { name:name, phone:$('#phone').val(), alipay:$('#alipay').val(), weixin:$('#weixin').val(), qq:$('#qq').val(), email:$('#email').val() }, success: function(data){ if(data.success){ toast_tip(保存成功); } else { toast_tip(保存失败); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, </script> }); ``` php代码 ``` if(isset($_GET['act'])){ switch ($_GET['act']) { //保存资料//////////////////////////////////////////////// case 'personal': try { //修改数据 $stmt = $db->prepare('UPDATE members SET Name=:Name, Phone=:Phone, AliPay=:AliPay, WeiXin=:WeiXin, QQ=:QQ, EMail=:EMail WHERE UserName=:UserName') ; $stmt->execute(array(':Name' => $name, ':Phone' => $phone, ':AliPay' => $alipay, ':WeiXin' => $weixin, ':QQ' => $qq, ':EMail' => $email, ':UserName' => $_SESSION['UserName'] )); } catch(PDOException $e) { $error[] = $e->getMessage(); } echo '{"message":"保存成功","success":true}'; break; } } ``` 修改数据能成功, 但是老是回调error 返回代码 200, 4, parsererror

jquery $.ajax() success回调函数问题

success: function(data){ **if(data.equals("admin")){** location.href = "admin.jsp"; } else{ $("#head").html($.ajax({url: "head.jsp",async: false}).responseText) } } 这个data到底是什么类型的数据,为什么我这个if执行不了,后台已经能成功处理数据,用alert(data)能成功提示出后台处理过的数据,就是这个if执行不了,看看我加粗的地方写的对吗?

ajax访问后台代码,成功但是ajax走error:function

后台代码 ``` /** * 账号是否存在 * @param account * @return */ @RequestMapping(value = "/validateAccountNonExistent.json", method = RequestMethod.GET) @ResponseBody public JsonData validateActNonExistent(@RequestParam String account){ System.out.println(account+"============account"); if(sysUserService.checkTelephoneExist(account, null)){ System.out.println("true"); return JsonData.success(); }else if(sysUserService.checkEmailExist(account, null)){ System.out.println("true"); return JsonData.success(); }else{ System.out.println("false"); return JsonData.fail("账号不存在"); } } ``` 后台拦截器拦截到的日志信息 ``` ================================================================================================ 2019-03-14 11:26:11.162 INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor : request start. servletPath:/sys/user/validateAccountNonExistent.json, methodType:GET 2019-03-14 11:26:11.162 INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor : request start. url:/assets/sys/user/validateAccountNonExistent.json, params:{"account":["admin@qq.com"],"_":["1552533963678"]} servletPath==========/sys/user/validateAccountNonExistent.json 2019-03-14 11:26:11.162 INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor : request completed. url:/assets/sys/user/validateAccountNonExistent.json, cost:0 ``` js ``` callback: function (value, validator, $field) { var bol = true; $.ajax({ type: "get", url: "/assets/sys/user/validateAccountNonExistent.json", cache : false, async : false, data: { account:value }, success: function(data) { console.log(data.ret); if(!data.ret){ bol = false; } }, error: function () { console.log("caocaocaocao"); bol = false; } }); return bol; } ``` 说明:前台,浏览器F12 network中访问正确200,后台拦截器也拦截到了数据,但是后台没有进方法,连输出语句都没有输出,ajax会走error:function(){}。 但是只要把前后台代码中的访问路径中的validateAccountNonExistent改成validateTelephoneNonExistent就没有问题 =-= 。求解!!!!! 补充 ``` {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}abort: ƒ (e)always: ƒ ()catch: ƒ (e)done: ƒ ()fail: ƒ ()getAllResponseHeaders: ƒ ()getResponseHeader: ƒ (e)overrideMimeType: ƒ (e)pipe: ƒ ()progress: ƒ ()promise: ƒ (e)readyState: 4responseText: ""setRequestHeader: ƒ (e,t)state: ƒ ()status: 200statusCode: ƒ (e)statusText: "parsererror"then: ƒ (t,r,i)__proto__: Object VM513:170 parsererror VM513:171 SyntaxError: Unexpected end of JSON input at parse (<anonymous>) at Ut (jquery.min.js:2) at k (jquery.min.js:2) at XMLHttpRequest.<anonymous> (jquery.min.js:2) at Object.send (jquery.min.js:2) at Function.ajax (jquery.min.js:2) at Object.callback (<anonymous>:153:31) at Object.call (bootstrapValidator.min.js:10) at Object.validate (bootstrapValidator.min.js:10) at b.validateField (bootstrapValidator.min.js:10) ```

ajax怎样在success方法里判断多个条件

在后台Servlet中,有4个返回值 ``` int base_rn = new RadioDao().getRadioNumber(base); int base_cn = new CheckBoxDao().getCheckBoxNumber(base); int base_jn = new JudgeDao().getJudgeNumber(base); int base_bn = new BlankDao().getBlankNumber(base); ``` 请问在JQuery中ajax的success方法里,怎样将这四个值传进去,然后和前台获取到的数据进行比较呢?请大神帮忙!我刚刚接触ajax

用Extjs提交表单后,请求有返回数据,但success函数的action里取不到返回结果

``` /** * 打开数据项导入窗口 */ function openDataItemImportWnd() { Ext.create('Ext.window.Window', { title: '导入数据项', autoHeight: true, width: 400, modal: true, layout: 'fit', items: { xtype: 'form', method : 'POST', url: "importDataItemStructure.up", standardSubmit: false, items: [{ xtype: 'filefield', emptyText: '请选择要上传的xls文件', id: 'filefield_yY71MXsb', name: 'fileName', allowBlank: "false", width: 300, hideLabel: 'false', labelAlign: 'right' }], buttons: [{ text: '导入', formBind: true, handler: function(button) { Ext.getBody().mask('数据导入中...'); // 获取表单的值 var form = button.up('form').getForm(); form.submit({ success: function(form, action) { console.dir(action); Ext.Msg.alert('Success', action.result.info.message); }, failure: function(form, action) { Ext.Msg.alert('Failed', action.result ? action.result.info.message : 'No response'); } }); Ext.getBody().unmask(); } }, { text: '取消', handler: function(button) { button.up('window').destroy(); } }] } }).show(); } ```

nignx下 ajax请求问题

在服务器上做ningx,做了端口80跳转到8083, 8083上装了tomcat的struts2框架的应用。当访问80的端口对应在jsp存在问题。 为什么在访问80每次ajax第一次请求就进入error报404. 第二次以及以上都可以进入success:。但是直接访问8083是可以访问。 调试如下: 其中ajax代码 $.ajax({ url: $("#baseUrl").val()+'jdd/tools/toolsUtilndData.action', data:data, timeout: 300000, success: function (data) { console.log(data); }, error: function (e) { console.log(data); alert("系统繁忙,请稍候再试!"); } }); } } 第一次请求 进入 error: 第二次请求进入success:

ajax成功调用后端服务但是并没有进success也不进error ?

$.ajax({ url:URL_RECHARGRPAYMENT, data:{ 'Code':'2', 'deviceNumber':corpUserNumber, 'payAmount':Amount, 'realPayAmount':Amount, 'payMethod':'10', // 充值方式 默认现金:10 'rechargeType':'9001' // 充值类型:1普通充值 之前是1 , 现在该成了9001 }, dataType:'json', type : "post", success:function(message){ //console.log(message); console.error(message); debugger; if(message.status == '1'){//test01(test) var staffName = (message.staffName).split("("); staffName = staffName[1].substring(0,staffName[1].length-1); var storage = window.localStorage; var rechageInfo = { "deviceNumber": message.deviceNumber,//充值号码 "payAmount": message.payAmount,//充值金额 "receiptNumber": message.receiptNumber,//收据编号 "staffName": staffName,//受理员工 "exp_date": message.exp_date,//受理时间-当前时间 "custName": corpName, "payName": corpName, "channelName": message.channelName, "staffName":staffName }; storage.setItem("rechageInfo", JSON.stringify(rechageInfo));//收据信息 window.location = "/SaleWeb/jsp/query/RechargePaymentReceipt.jsp"; }else{ alert(message.errorMessage); return false; } }, error:function(result){ alert(result); }, waitMsg : '正在处理数据....' })

JSONP返回时不进success

jQuery(function(){ jQuery('#DATA_353').change(function(){ var kunnr = document.getElementById('DATA_353').value; jQuery.ajax({ url:'http://192.168.12.91:82/SAPAppServer/ws/sap/getDataByKUNNR', type:'GET', async: false, dataType:'jsonp', jsonp : 'jsoncallback', data:{'KUNNR' : kunnr}, jsonpCallback:"success_jsonpCallback", success:function(result){ alert("aa"); } }); }); }); 返回 success_jsonpCallback({"success":true, "message":合肥市航嘉电子技术有限公司}) 但控制台报 Uncaught ReferenceError: 合肥市航嘉电子技术有限公司 is not defined

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问