Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery load()方法的问题_Javascript_Jquery - Fatal编程技术网

Javascript jQuery load()方法的问题

Javascript jQuery load()方法的问题,javascript,jquery,Javascript,Jquery,我刚开始使用jQuery,但在做一些非常简单的事情时遇到了麻烦:使用.load()将外部HTML插入主页面 以下是主页: <html> <head> <script src="js/jquery-latest.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8">

我刚开始使用jQuery,但在做一些非常简单的事情时遇到了麻烦:使用.load()将外部HTML插入主页面

以下是主页:

<html>
    <head>
    <script src="js/jquery-latest.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">
        $(document).ready(function(){
            $(".log").ajaxError(function() {
                $(this).text('Ajax error.');
            });

            $('.result').load('external.html', function() {
                $('.log').text('Loaded.')
            });
        });
    </script>
    </head>
    <body>
        <div class="log">
        </div>
        <div class="result">
        </div>
    </body>
</html>
当我运行它时,它会在.log div中插入“一切正常”

编辑2:刚刚在Firefox中试用过,效果不错!(我以前用过Chrome)。我以为jQuery可以和Chrome一起工作,对吗


编辑3:问题解决了!我正在本地打开文件(如文件://)。我认为这是造成安全问题的原因。无论如何,现在我知道如果我想在chrome中进行测试,我必须首先将它放到我的web服务器上。

你确定external.html与此页面位于同一目录下吗?

无论成功与否,.load()回调都将被执行。它仅表示加载操作已完成(成功或未成功)

请尝试以下操作以获取详细信息:

$(".result").load("external.html", function(response, status, xhr) {
  if (status == "error") {
    var msg = "Sorry but there was an error: ";
    $(".log").html(msg + xhr.status + " " + xhr.statusText);
  }
});

我猜您遇到了问题,或者external.html的路径不正确。

我复制了您的html文件并引用了本地jQuery-1.4.1.min.js文件,它工作正常。
正如Adam所说,您可能应该检查脚本源路径和external.html路径是否正确。

问题已解决!我正在本地打开文件(如文件://)。我认为这是造成安全问题的原因。无论如何,现在我知道如果我想在chrome中进行测试,我必须首先将它放到我的web服务器上。

使用FireFox FireBug扩展来检查正在发出的ajax请求。这将在请求发生时向您显示请求、请求参数和头以及响应正文和头。这将突出显示错误所在。是的,它位于同一目录中。这两个路径都是正确的。其他jQuery的东西也可以使用,所以我知道我的方法是正确的。external.html与main.html.Ah位于同一目录中,这就解释了为什么它会打印“Loaded!”但是,我复制并粘贴了您的代码,并且没有显示任何错误消息。然后我添加了一个else语句,它运行else语句中的代码,再次暗示没有错误!
$(".result").load("external.html", function(response, status, xhr) {
  if (status == "error") {
    var msg = "Sorry but there was an error: ";
    $(".log").html(msg + xhr.status + " " + xhr.statusText);
  } else {
    var msg = "Everything worked fine!";
    $(".log").html(msg);
}
});
$(".result").load("external.html", function(response, status, xhr) {
  if (status == "error") {
    var msg = "Sorry but there was an error: ";
    $(".log").html(msg + xhr.status + " " + xhr.statusText);
  }
});