AJAX适用于Firefox,但不适用于Chrome

时间:2012-06-26 01:33:18

标签: jquery

好的,我有这个HTML代码:

<head>
    <script type="text/javascript" src="js/jquery.1.3.2.min.js" ></script>
    <script type="text/javascript" src="js/jquery-ui.min.js" ></script>
    <script type="text/javascript" src="js/funciones.js" ></script>
</head>

<body> 

    <div>
    <a><div id= "0" class="Button" href="./es/uno.xml">uno</div></a>
    <a ><div id= "1" class="Button" href="./es/dos.xml">dos</div></a>
    <a ><div id= "2" class="Button" href="./es/tres.xml">tres</div></a>
    </div>

    <br/>
    <br/>
    <br/>

    <div id="content" class="content">

    </div>

</body>
</html>

和这个javascript代码:

 $(document).ready(function() {
        $('.Button').click(function() {
        var href = $(this).attr('href');

        if( typeof href != "undefined" && href != ""){
            $.ajax({
                url: href,
                dataType: 'text',
                success: function(data) {
                            //alert($(data).contents().contents().text());
                            $('#content').html(data);
                            ultXML = href;
                        }
            });
        }
    });
});

上面的代码让我在div内容中加载3个不同的xml文件,根本没有标记。它在Firefox上运行正常,但它不适用于Chrome(无论是Wind还是Ubuntu Chromium)

2 个答案:

答案 0 :(得分:2)

将if条件更改为if(href) { ...。 您正在检查值是未定义还是空字符串,如果执行if(href) { ...,则两者都将评估为false。

我现在正在Windows中使用chrome,你的代码似乎工作(当然它会引发我404错误,因为我没有文件)。

如果这不能解决您的问题,请尝试打开Chrome开发人员工具,并检查是否在“网络”中看到了ajax请求。

更新:在ajax成功时添加jsfiddle空白警告

答案 1 :(得分:0)

我终于发现了什么是愚蠢的新手错误!代码没有错,运作良好。问题是当我在本地测试时:

file:///home/.../index.html(导航浏览器栏)

FF可以找到./es/uno.xml的路径但是(我知道为什么)Chrome不能。所以它什么都不用替换DIV内容。

如果我将文件放在服务器中以便以下列方式访问它,它就可以了:

http://example.com

谢谢大家!