【问题标题】:Ajax load function not working in htmlAjax加载功能在html中不起作用
【发布时间】:2014-07-29 23:47:12
【问题描述】:

问题已修复。非常感谢大家。

我试图通过将该文件放在它开始工作的 Web 服务器(xampp 服务器)上直接脱机而不是 Web 服务器运行该文件。

我正在尝试使用 ajax 在另一个 html 文件中加载一些 html 数据以加载 html 文档,但它不起作用。好吧,那是我的愚蠢:-P

<div id="css_change"></div><br />


<div id="menu_"><a href="calla.html">Opt 1</a> <a href="sunflowers.html">Opt 2</a> <a href="iris.html">Opt 3</a> <a href="alstromeria.html">Opt 4 </a></div>
<br />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>


$(document).ready(function(e) {

var $flowers = $('#menu_');

$('#menu_').find('a').on('click', function(e){
    e.preventDefault();

    var $desc = $('#css_change');

    switch($(this).attr('href')) {
        case 'calla.html' :
            $desc.load('text/lilies.html');
            break;
        case 'sunflowers.html' :
            $desc.load('text/sunflower.html');
            break;
        case 'iris.html' :
            $desc.load('text/irises.html');
            break;
        case 'alstromeria.html' :
            $desc.load('text/peruvian.html');
            break;
    }
});


});
</script>
</body>
</html>

而且我认为preventDefault(); 功能不起作用。

我正在尝试使用 ajax 将 html 位从一个文档加载到另一个文档。 请帮忙。

【问题讨论】:

  • 您从哪个 Web 服务器运行它? Jquery 负载仅适用于网络服务器。有时您可以将文件作为本地网页进行测试。
  • 作为我正在使用的本地网页
  • JavaScript 真的在运行吗?哪个部分不完全工作?当它运行时,你在控制台中看到了什么?
  • 如果是这样你就不能使用 Jquery 加载函数来获取本地文件。它用于从 Web 服务器发起 http 请求。
  • XMLHttpRequest 无法加载文件:///C:/Users/administrator/Desktop/web%20page/text/sunflower.html。收到无效回复。因此,Origin 'null' 不允许访问。这是我现在遇到的错误。

标签: javascript jquery html ajax xml


【解决方案1】:

使用 http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js 为 $ 定义。

没有 http 可能会导致问题。 e.preventDefault() 防止默认值

【讨论】:

  • // 有效。唯一的问题是文件是否使用文件协议加载。
  • 我试过了..thanx 但还是一样。它在调试面板中向我显示此错误 XMLHttpRequest cannot load file:///C:/Users/administrator/Desktop/web%20page/text/sunflower.html。收到无效回复。因此,不允许访问 Origin 'null'。
【解决方案2】:

我得到了解决方案。我正在离线预览这些文件。现在在尝试了所有事情之后。我只是将所有文件移动到 Web 服务器并尝试了它们。 waala 它开始工作了。感谢大家的努力。

哦,是的,很少有变化对我有帮助。感谢@SuperOV 为

http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js for $ define.

成功了。

【讨论】:

    【解决方案3】:

    我已直接使用 '#menu_ a' 而不是 find a 来修复代码,并且 return false 而不是 e.preventDefault。

    检查一下

    $(document).ready(function() {
    
        var $flowers = $('#menu_');
    
        $('#menu_ a').on('click', function(){
    
            var $desc = $('#css_change');
    
            switch($(this).attr('href')) {
                case 'calla.html' :
                    $desc.load('text/lilies.html');
                break;
                case 'sunflowers.html' :
                    $desc.load('text/sunflower.html');
                break;
                case 'iris.html' :
                    $desc.load('text/irises.html');
                break;
                case 'alstromeria.html' :
                    $desc.load('text/peruvian.html');
                break;
            }
    
        return false;
    
        });
    
    });
    

    【讨论】:

    • 没有。不工作。还是一样。当我单击该链接时,它会将我转发到该 html 页面。但它应该在给定的 div 标签中加载 html 数据。
    • hmmm .. 它适用于我jsfiddle.net/s7FY7,你的页面中还有其他 javascript 吗?
    • 您可以使用 jsfiddle 或 codepen.io 分享您的代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多