首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

struts jquery ajax 老是进入error方法解决方案

2013-01-25 
struts jquery ajax 老是进入error方法本帖最后由 showbo 于 2012-09-28 09:30:21 编辑跪求大仙指导!!!ind

struts jquery ajax 老是进入error方法
本帖最后由 showbo 于 2012-09-28 09:30:21 编辑 跪求大仙指导!!!
index.js

$("#aaa").click(function (){
alert("0000================");
$.ajax({
url:'http://localhost:8080/Public_Bicycle_System/allSite.action',
type:'post',
data:'',
dataType:'json',
success:function(msg){
$(msg.bicycleSites).each(function(i,value){
alert(+"==========");
/*var point = new BMap.Point(value.lat_Long.x, value.lat_Long.y);
var marker = new BMap.Marker(point);
map.addOverlay(marker);*/
}
);
},
error:function(mm){
alert("message error");
ob=eval(mm);
var pro = "";
for(var i in ob){
pro+=i+"\n";
}
alert(pro);
alert(mm.getAllResponseHeaders);
}});
});

index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0,user-scalable=no"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Insert title here</title>
<link href="file/css/index.css" rel="stylesheet" type="text/css">
<script src="file/javascript/jquery/jquery.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>

</head>
<body>
<div id="title">
<input type="button" id="aaa" value="sfsffs"/>
</div>

struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="json-default">

<!-- 当页面刚加载时用ajax请求 -->
        <action name="allSite" class="com.pbs.action.BicycleSiteAction">
     <result name="users" type="json"></result>
        </action>        <action name="allSite" class="com.pbs.action.BicycleSiteAction">
     <result name="users">/success.jsp</result>
        </action>
    </package>
</struts>

BicycleSiteAction.java
package com.pbs.action;

import java.util.List;

import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;
import com.pbs.model.BicycleSite;
import com.pbs.service.BicycleSiteService;
import com.pbs.service.impl.BicycleSiteServiceImpl;
/**
 * 此类提供处理请求有数据交换请求处理,其中数据主要是关于BicycleSite的


 * <br>
 * @author 杨月恒
 * @version 1.0
 */
public class BicycleSiteAction extends ActionSupport {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private BicycleSiteService bicycleSiteService = new BicycleSiteServiceImpl();
private List<BicycleSite> bicycleSites ;
@Override
public String execute() throws Exception {
this.bicycleSites = bicycleSiteService.getAllSite();
return "users";
}public List<BicycleSite> getBicycleSites() {
return bicycleSites;
}public void setBicycleSites(List<BicycleSite> bicycleSites) {
this.bicycleSites = bicycleSites;
}

}


请求时能调到action类里的方法,也能连到数据库,就是数据传不过来,老是进入error方法,在网上查了查说是蓝色的get方法有问题,好像是jquery处理get方法和别的方法不同,当我改成其他的方法时可以进入success方法,但是得不到数据,因为struts是靠get方法得到action数据传到前台的,没了get方法自然没值,这可咋办啊,跪求高手指导!!!!!
[解决办法]
    error:function(mm){
alert(mm.responseText)////////////输出看看,mm是xhr对象,不能直接eval
        alert("message error");
        ob=eval(mm);
        var pro = "";
        for(var i in ob){
            pro+=i+"\n";
        }
        alert(pro);
        alert(mm.getAllResponseHeaders);
    }


指定数据格式为json,确认json格式为标准的,要不jq1.4+以上执行到error回调去

参考:jQuery dataType指定为json的问题
[解决办法]
看看你的后台的json的结果是不是标准的json的格式形式。符合json的要求吗?
[解决办法]
瞅瞅传过来的结果是不是错误。。。。
[解决办法]
http://localhost:8080/Public_Bicycle_System/allSite.action
地址栏敲入上面URL,测试返回数据

热点排行