ajax-刚写了段AJAX,测试的时候无论如何都没有结果,问题在哪啊?

问题描述

刚写了段AJAX,测试的时候无论如何都没有结果,问题在哪啊?
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>AJAX_Test</title>
</head>
<body>
    <form name="myForm">
        输入关键字:<input type="text" name="key" onkeyup="search(this.value)"><br>
        图书信息:<span id="txtHint"></span>
    </form>

    <script type="text/javascript">
    var xmlHttp;
    var key;
    function search (value) {
        // body...
        try{
            xmlHttp = new XMLHttpRequest();
        }catch(e){
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(e){
                    alert("你的浏览器不支持AJAX!");
                    return false;
                }

            }
        }
        key = value;
        url = "books.xml";
        xmlHttp.onreadystatechange=myfunc;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
    }

    function myfunc(){
        if (xmlHttp.readyState==4) {
            var xmlStr = xmlHttp.responseText;
            xmlStr = parse(xmlStr);
            document.getElementById("txtHint").innerHTML = xmlStr;
        }
    }

    function parse(xmlStr){
        var xmlDoc = null;
        if(window.ActiveXObject){
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        }else if (document.implementation.createDocument()) {
            xmlDoc = document.implementation.createDocument("","",null);
        }else{
            alert("浏览器不能处理!");
        }
        var tableStr = "";
        if (xmlDoc!=null) {
            xmlDoc.async=false;
            xmlDoc.loadXML(xmlStr);
            tableStr+="<table border='1'>";
            var x = xmlDoc.getElementsByTagName("book");
            for(i=0;i<x.length;i++){
                var name = x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
                var price = x[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
                var author = x[i].getElementsByTagName("author")[0].childNodes[0].nodeValue;
                var year = x[i].getElementsByTagName("year")[0].childNodes[0].nodeValue;
                if(name.indexOf(key)==-1)continue;
                tableStr+="<tr>";
                tableStr+="<td>"+name+"</td>";
                tableStr+="<td>"+price+"</td>";
                tableStr+="<td>"+author+"</td>";
                tableStr+="<td>"+year+"</td>";
                tableStr+="</tr>";
            }
            tableStr+="</table>";
        }
        return tableStr;
    }
    </script>
</body>
</html>

上面是网页代码,输入任何关键字都没反应啊,books.xml文件是没有错的,

 <?xml version="1.0" encoding="utf-8"?>
<books>
    <book isbn="13452728">
        <name>《水浒传》</name>
        <price>80</price>
        <author>施耐庵</author>
        <year>元末</year>
    </book>
    <book isbn="78789779">
        <name>《西游记》</name>
        <price>90</price>
        <author>吴承恩</author>
        <year>明代</year>
    </book>
    <book isbn="36734598">
        <name>《三国演义》</name>
        <price>75</price>
        <author>罗贯中</author>
        <year>元末</year>
    </book>
    <book isbn="63458728">
        <name>《红楼梦》</name>
        <price>79</price>
        <author>曹雪芹</author>
        <year>清代</year>
    </book>
</books>

是不是代码的问题,还是在tomcat的文件夹缺少东西?小白第一次接触AJAX,求助!

解决方案

   window.bz = {};

    (function (obj) {

        obj = {};

        //创建xmlhttprequest对象

        obj.createXMLHttpRequest = function () { if (window.ActiveXObject) { var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"]; for (var i = 0; i < aVersions.length; i++) { try { return new ActiveXObject(aVersions[i]); } catch (oError) { continue; } } } else if (window.XMLHttpRequest) { return new XMLHttpRequest(); } throw new Error("XMLHttp object could not be created."); }

        //ajax

        obj._xmlHttp = null;

        obj.ajax = function (options) {

            try {
                if (options["sync"] != undefined) {
                    obj._xmlHttp.open(options.method, options.url, options.sync);
                } else {
                    obj._xmlHttp.open(options.method, options.url, true);
                }
                obj._xmlHttp = this.createXMLHttpRequest();

                obj._xmlHttp.setRequestHeader("cache-control", "no-cache");

                obj._xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                obj._xmlHttp.onreadystatechange = function () {
                    var _response = "";
                    if (obj._xmlHttp.readyState == 4) {

                        if (obj._xmlHttp.status == 200) {
                            if (options["dataType"] == undefined) {
                                _response = obj._xmlHttp.responseText;
                            } else {
                                switch (options.dataType.toLowerCase()) {

                                    case "json":

                                        _response = eval(obj._xmlHttp.responseText);

                                        break;

                                    case "xml":

                                        _response = obj._xmlHttp.responseXML;

                                        break;

                                    case "html":

                                        _response = obj._xmlHttp.responseText;

                                        break;

                                    default:

                                        _response = obj._xmlHttp.responseText;

                                        break;

                                }
                            }

                            options.success(_response);

                        }

                    }

                    else {
                        if (options[""] != undefined) {

                        }
                        alert("ajax 提交失败");
                    }

                }
                if (options["data"] == undefined) {
                    obj._xmlHttp.send(data);
                } else {

                    var data = options.data
                    bz.isJson = function (obj) {
                        var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
                        return isjson;
                    }
                    if (bz.isJson(data)) {
                        var a = "";
                        for (var i in options.data) {
                            a += i + "=" + options.data[i] + "&";
                        }

                        obj._xmlHttp.send(a);
                    } else {
                        obj._xmlHttp.send(data);
                    }

                }

            }

            catch (e) {
                alert(e.message);

            }

        }

        //对象引用

        bz = obj;

    })(bz);
时间: 2024-09-08 10:06:18

ajax-刚写了段AJAX,测试的时候无论如何都没有结果,问题在哪啊?的相关文章

利用Ajax技术写一个迷你留言板WEB控件

ajax|web|控件 初学Ajax不久,自己写个小东西,以作学习日记留言板图片如下: 样例地址:http://www.8dao.net/miniguest/ 首先,这里用的是Access数据库,便于移动.数据库很简单,表Guest,字段有ID,Name,Content 要实现Ajax,利用asp.net ajax 1.0 bate是很方便的,在http://ajax.asp.net可以下载到.安装好后打开VS2005,新建一个ASP.net AJAX Enabled Web Site项目在里面

javascript-这段ajax错在哪?本人小白刚接触

问题描述 这段ajax错在哪?本人小白刚接触 <script> function sub() { console.log($("#sub_form").serialize()); $.ajax({ type:"POST", datatype:"html", url:"./test2.php", data: $('#sub_form').serialize(), success:function(data){ con

帮我看看这段ajax有什么问题,我看了很多遍,打死都不知道什么问题?

问题描述 帮我看看这段ajax有什么问题,我看了很多遍,打死都不知道什么问题? 1原代码: echo"<li><a href='javascript:void(0);' id='newjh'>提交</a></li>"; jquery代码: $("#newjh").click(function(){ user=$("#user").val();eml=$("#eml").val()

我是新手刚学verilog,自己写了段程序警告太多跪求大神指点

问题描述 我是新手刚学verilog,自己写了段程序警告太多跪求大神指点 module a(nrst,clk,a,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11);input nrst,clk;input[3:0]a;output [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0] CS,NS;parameter[3:0]IDLE=4'b0

asp ajax 实例(post,get,form测试)(1/3)

文章提供一款简单asp教程 ajax 实例(post,get,form测试)哦,他做了三个相关ajax asp测试实例,都通过了. index.html <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.111cn.net/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http:/

用JS写的一个Ajax库(实例代码)_javascript技巧

myajax是一个用js编写的一个跨浏览器的ajax库,支持get, post, jsonp请求,精巧,简单. 一.发送GET请求: myajax.get({ <span style="white-space:pre"> </span>data: {}, //参数 url: "", //请求地址 //发生错误是调用 error: function(data) { }, //请求成功调用 success: function(data){ <

jquery通过ajax加载一段文本内容的方法_jquery

本文实例讲述了jquery通过ajax加载一段文本内容的方法.分享给大家供大家参考.具体分析如下: 这是w3school官网提供的一个简单的例子,注意编码问题,否则可能会出现乱码.代码如下: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <script type="text/

ajax url写的对吗?怎么没有实现?

问题描述 ajax url写的对吗?怎么没有实现? 解决方案 这要看getRootPath()这个方法的返回值是什么,你给的这个看不出来 解决方案二: var url = getRootPath() + "/index1/checkUserName"; //这里可以查看你的url是否合法 $.ajax({ url : url, ... });

通过数据库和ajax方法写出地图的实例代码

ajax教程 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. 客户端部分:html.js.css代码部分: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www