2 rapcoding rapcoding 于 2016.03.22 18:35 提问

刚写了段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,求助!图片说明图片说明

1个回答

qq_18212055
qq_18212055   2016.03.22 21:35
   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);
rapcoding
rapcoding 谢谢,可是还是不明白问题出在哪里,难道应该把那个responseText改成responseXML,可是改了也不管用啊,
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
not in 查询无记录问题的解决
not in  查询无记录问题的解决 在sql server 中使用not in 查询时,常常会出现没有任何结果返回的情况,如  select * from employee where cname not in (select name from temp_emp where sign=1) 而使用 select * from employee where cname not i
佟刚完整Ajax源码+笔记
里面包括佟刚完整Ajax的源码,还有自己的心得加笔记
c++输出九九乘法表
刚学的时候感觉好难,结果竟然就几行代码…… 学语言入门好重要啊
NOIPDay1T2时间复杂度
NOIPDay1T2时间复杂度题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。 A++语言的循环结构如下: F i x y 循环体 E 其中F i x y表示新建变量 ii i(变量 ii
解决本地调试导致的Ajax跨域问题
写了Ajax在chrome测试时,会报错: XMLHttpRequest cannot load file:///E:/web/jqueryTest/ajax.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrom
关于app的闪退问题
今天以前测试时安装的app出现闪退,打不开的情况。很多帖子问题是因为都是IOS9,需要信任文件,但是也有另外的情况。 软件环境:xcode7、299$企业开发者账号 一、BUG描述。 测试时安装的app出现闪退。 二、出现原因。 主要是因为和同事共同进行开发,在发布到蒲公英应用市场上的时候,两个人使用了相同的证书,造成证书冲突,促使app打不开。 三、解决方法。 在真机测试的时候可以
JZOJ 5474. 【NOIP2017提高组正式赛】时间复杂度
JZOJ 5474. 【NOIP2017提高组正式赛】时间复杂度 Description 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序,于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。 A++语言的循环结构如下: 其中“ F i x y ”表示新建变量 i (变量 i
数独破解器
一时手贱写了这个自动计算数独的东西,结果就是我自己再玩数独的时候就一点乐趣都没有了。独坑之不如众坑之
一小段C++代码分析,看看你能写出输出结果吗,很简单的!
1.分析下列C#代码的输出结果:using System;namespace Test{       class Class1    {        [STAThread]        static void Main(string[] args)        {            Console.WriteLine(new Class1()); 
尚硅谷_佟刚_jQuery_PPT课件及源码.zip
尚硅谷_佟刚_jQuery_PPT课件及源码.zip