解决Ajax返回数据包含整个jsp页面的问题

处理请求页

<%
    ResultSet rs = conn.executeQuery("select name from tb_book order by id desc");
    String str = "";
    str = "{ \"info\":\"";
    if(rs.next()){
        do{
            str += ""+rs.getString(1)+"";
        }while(rs.next());
    }else{
        str += "暂无图书信息";
    }
    str += "\" }";
    out.clear();  // 清除前面的html标签
    out.print(str);
    out.close(); // 清除后面的html标签
%>

发起请求页:

<script>
window.onload=function(){
    new AjaxRequest({
        url:"getInfo.jsp?nocache="+new Date().getTime(),
        type:"GET",
        dataType:‘json‘,
        success:function(data){
            document.getElementById("showInfo").innerHTML = data.info;
        },
        error:function(err){
            document.getElementById("showInfo").innerHTML = err.status + ":" + err.statusText;
        }
    });
}
</script>
<div id="showInfo"></div>

自定义封闭ajax脚本函数:

var AjaxRequest = function(obj){
    this.req = new XMLHttpRequest();
    this.req.open(obj.type,obj.url,true);
    if(obj.type=="POST"){
        this.req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
    this.req.send();
    this.req.onreadystatechange = function(){
        if(this.req.readyState==4){
            if(this.req.status==200){
                if(obj.dataType==‘json‘){
                    obj.success(JSON.parse(this.req.responseText));
                }else{
                    obj.success(this.req.responseText);
                }
            }else{
                obj.error({status:this.req.status,statusText:this.req.statusText});
            }
        }
    }.bind(this);
}

原文地址:http://blog.51cto.com/maplebb/2296163

时间: 2024-11-05 00:42:10

解决Ajax返回数据包含整个jsp页面的问题的相关文章

jquery ui autocomplete ajax返回数据自定义显示

1.body里面的内容 <input type="text" class="inputTxt" id="txtJigou" autocomplete="off"/> 2.引入jquery.ui.min.js和他的样式 3.js代码如下<script type="text/javascript"> $(function(){ $("#txtJigou").autoc

ajax 如何提交数据到后台jsp页面,以及提交完跳转到jsp页面

我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.getParameter("pwd1"); login.jsp input 取2参数何用ajax 传给logincheck.jsp ================================== $.ajax({ type : "POST", url : baseUrl

Ajax返回数据却一直进入error(已经解决)

做asp.net项目  使用ajax $.ajax({ url: '../Music/Default2.aspx?Types=' + type + '&texts=' + text + '', type: 'GET', // data: '&texts=' + text + '',dataType: 'json', success: function (data) { console.log(data); } }); 都没有问题   返回数据,打印出data  结果 发现没有数据 去Net

ajax返回数据解析总结

ajax即异步 JavaScript 和 XML(Asynchronous JavaScript and XML). 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示. 使用 AJAX 的应用程序案例:谷歌地图.腾讯微博.优酷视频.人人网等等. 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本.HTML.XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中. 前面已经提过aja

Jquery 等待ajax返回数据loading控件ShowLoading组件

1.意义 开发项目中,前台的页面要发请求到服务器,服务器响应请求返回数据到前台,这段时间,有可能因为返回的数据量较大导致前台页面出现短暂性的等待,此时如果用户因不知情而乱点击有可能造成逻辑混乱,所以此时需要在加载数据中将前台进行提示在加载数据中,利用jquery的遮罩组件可以完成这个功能需求. 2.实现步骤 (1).下载 showLoading.css    jquery.showLoading.min.js  两个文件. (2).在jsp中引入这两个文件 <link href="styl

jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案

1. 前言 由于项目需要,需要load一个页面并保持ajax返回的div能响应其页面内的JS的click事件.这个不是 解决用jquery load加载页面到div时,不执行页面js的问题 这类问题,因为并无这个问题存在(jquery版本:1.10.2.js). 2. 本质原因 假定页面内有$(.btn1).click(function(){})事件,你手动复制一个包含class为btn1的div到页面,然后会发现你点击那个div,并不会被响应,如果你在console执行$(.btn1)确实有包

ajax返回数据之前的loading等待

首先,我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一个loading.gif图 不废话,在页面上执行点击事件(<a sceneid="@scene.ID" href="javascript:void(0)" onclick="build(this)">生成</a>) 调用下面方法: function build(sender) { var jqSen

java中文乱码解决之道(七)-----JSP页面编码过程

我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco

小笔记(一):ajax传递数组及将ajax返回数据赋值

当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,content1:content1,content2:content2,content3:content3,...........}, success:function(data){ alert(data) } }); 这时我们就可以先在传递数据之前,将数据封装在数组中,但是要注意,定义数组的时候要用arr={