我的问题是要用jQuery的ajax检测一个用户名是否存在,但它老是弹出"检测失败,请检查网络!",
不能弹出“aa”,跪求大神解释怎么用jQuery的ajax,以下是代码
页面jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
  <head>
    
    <title></title>
    <script type="text/javascript" src="${pageContext.servletContext.contextPath}/jquery.min.js"></script>
    <script type="text/javascript">
function ajaxCheck(v){
var userName = v;
if(userName.trim()!=""){
$.ajax({
type:"post",
url:"ajaxCheck.action",
data:'user.userName='+userName+'',
dataType:"json",
success:tishi,
error:function(){
alert("检测失败,请检查网络!");
}
})
}else {
alert("请先输入用户名!");
}
}
function tishi(){
alert("aa");
/*var json = eval(jsonResult);
var str = json.jsonResult;
if(str=="ok"){
alert(json.userName+"该用户存在,请输入密码进行登陆!");
}else{
alert(json.userName+"该用户不存在,请先注册!");
}*/
}
</script>
  </head>
  
  <body>
  <form action="save.action" method="post">
   userName:<input type="text" name="user.userName" onblur="ajaxCheck(this.value);"><br/>
   userPs:<input type="text" name="user.userPs"> <br/>
   <input type="submit">
  </form>
  </body>
</html>struts.xml代码
<package name="ajax" namespace="/" extends="json-default">
    <action name="ajaxCheck" class="userAction" method="ajaxCheck">  
            <result type="json"></result>  
        </action>  
</package>java代码
package com.pro.action;import java.util.List;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;
import org.hibernate.criterion.DetachedCriteria;import com.opensymphony.xwork2.ActionSupport;
import com.pro.domain.User;
import com.pro.manager.UserManager;public class UserAction extends ActionSupport implements ServletRequestAware,ServletContextAware {
private User user;
private UserManager userManager;
private HttpServletRequest request;
private ServletContext application;
private String currentPage;
private String jsonResult;
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getJsonResult() {
return jsonResult;
}
public void setJsonResult(String jsonResult) {
this.jsonResult = jsonResult;
}
public String getCurrentPage() {
return currentPage;
}
public void setCurrentPage(String currentPage) {
this.currentPage = currentPage;
}
public void setServletContext(ServletContext application) {
this.application=application;
}
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}

//ajax
public String ajaxCheck() throws Exception{
return SUCCESS;
}
}
jQueryajaxj2ee

解决方案 »

  1.   

    jQuery的语法我并不是很熟,我想问一下
    success:tishi,
    这句什么意思?
      

  2.   

    调用下面的function tishi(){
    alert("aa");
    }来alert,测试是否成功执行ajax
      

  3.   

    json格式的数据不是这样的吧
    data:'user.userName='+userName+'',
    dataType:"json"
    而且你的框架要支持json
    比如Spring mvc的要引入jackson包来支持json数据
      

  4.   

    你的action返回的不是json格式的字符串,你的ajax返回值是json,这对吗
      

  5.   

    最好打印错误的编号看下是什么错误:
    error:function(a,b){
        alert(b);
    }
    有可能是你返回的数据没有按照标准的json格式导致解析失败,标准的json格式都是加双引号的哦@!
      

  6.   

    我自己解决了,其实是几个json的jar包没放,主要是用ssh2写项目时都没用过json,自己也不了解json,其实代码都对。
    就是以下这3个jar包,谢谢各位了
    json-lib-2.1.jar
    struts2-json-plugin-2.1.8.1.jar
    xwork-core-2.1.6.jar