这时我的js代码:
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function sendreq(theme){
var themeName = theme.value;
alert(themeName);
var url="ThemeServlet2?themeName="+themeName+"&time=" + new Date().getTime();

var ax=new Ajax.Request(
url,
{
method:"GET",
onComplete:huidiaoaa
}
);

}
function huidiaoaa(xhr){
alert("huidiao");
var u = xhr.responseText.parseJSON();
var posts = u["1"];
var son = document.getElementById("son");
pageContext.setattrbute("posts",posts);
}
</script>servlet的url也没有写错,触发页面元素确实能进入sendreq函数,但却无法进入servlet,更奇怪的是回调函数确进入了,这是什么问题啊?
AjaxServlet

解决方案 »

  1.   

    真的不知道你为什么喜欢用这个东西才请求,人家jquery里边封装的那么好,你们都不用,浪费啊,我都是这样用的
    var type; //子站标识(区号)
    var tabIndex;$(function(){
    $("#login1").bind("click", addRescue);
    $("#login2").bind("click", addLost);
    $("#login3").bind("click", clueEveryList);
    $("#login4").bind("click", updateAssistSite);
    $("#login5").bind("click", assistSiteList);

    type = $("#type").val();
    tabIndex = $("#tabIndex").val();
    changeTabIndex(tabIndex); //改变tab
    })function changeTabIndex(index) {
    if(index != "") {
    $("#login"+index).click();
    } else {
    $("#login1").click();
    }
    }function addRescue() { //救助站
    jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexClue!addRescue.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html(data);
    }
    });
    }function addLost() { //发布走私带领
    jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexClue!addLost.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html("");
    $("#con_login_2").html(data);
    }
    });
    }function clueEveryList() {//协查网点,线索综合列表
    jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexClue!clueEveryList.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html("");
    $("#con_login_2").html("");
    $("#con_login_3").html(data);
    }
    });
    }function updateAssistSite() {//4修改协查网点
    jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexAssistSite!updateAssistSite.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html("");
    $("#con_login_2").html("");
    $("#con_login_3").html("");
    $("#con_login_4").html(data);
    }
    });
    }function assistSiteList() {//查看协查通告
    jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexClue!assistSiteNoticeList.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html("");
    $("#con_login_2").html("");
    $("#con_login_3").html("");
    $("#con_login_4").html("");
    $("#con_login_5").html(data);
    }
    });
    }
      

  2.   

    prototype.js这个不熟悉,看看有没有属性可以查看ajax返回的状态是啥
      

  3.   

    行吧,我先不看你的代码,我就想问你,你在WEB.xml里面配了Server没有
      

  4.   

    你可以使用jqery ajax
    eg;jQuery.ajax({
    type:'post',
    dataType:'text',
    url:'/fpIndexClue!clueEveryList.xhtml',
    data:'type='+ type +'&t='+MyJs.randomNumber,
    success:function(data){
    $("#con_login_1").html("");
    $("#con_login_2").html("");
    $("#con_login_3").html(data);
    }
    });
      

  5.   

    楼主你的 ThemeServlet2
    在web.xml 里面是怎么配置的?
      

  6.   

    再检查你的url,可以直接浏览器里输入看服务端能不能进入,可以进回调函数有可能你这个封装的Ajax是异步调用的(不需要等待请求的返回)
      

  7.   


    我的web.xml应该没错,只是我这个项目实际是集成了struts2的,所以我试过直接访问居然是报no action,看来struts2的原理还没懂啊
      

  8.   

    你的servlet 有没有 在 web.xml 配置?直接在浏览器地址栏输入 你的不带参数 URL 能否进入?在对应的servlet do方法内 打印一句话,测试一下便知道了。syso("-- come in --");