0

这是我第一次使用 AJAX。单击链接时,我正在尝试加载我的一个页面(我知道我可以这样做<a href="something.html">,但我这样做只是为了使用 AJAX,并且遇到了我的页面加载但页面的 javascript 的问题没有。这是正常的 AJAX 后果吗?我猜它与dataType: html? 这是我的代码:

function getContent(filename) {
    $.ajax({
        url: filename,
        type: "GET",
        dataType: "html",
        beforeSend: function(){
            $('html').html('<img src="../images/loading.gif">');
        },
        success: function (data, textStatus, xhr) {
            if (filename == "second.html") {
                setTimeout(function (){
                    $('html').html(data);
                }, 2000);
            } else {
                $('html').html(data);
            }
        },
        error: function(xhr, textStatus, errorThrown) {
            $('html').html(textStatus);
        }
    });
}
4

2 回答 2

0

这是因为 ajax 页面只返回渲染的内容,而不是像普通页面那样运行。例如,您可以在ajax页面上使用PHP,服务器渲染它然后发送它,因为PHP是预渲染,据我所知,javascript在页面渲染后运行。

于 2012-08-30T22:18:06.263 回答
0

你能检查一下chrome的网络监视器吗?首先,有什么东西会得到 404 吗?文件字面上是 second.html 吗?如果是这样,那么不应该有路径问题。接下来该项目出现的“响应”是什么?这个反应看起来还行吗?

接下来,您为什么不尝试将 JS 从 head 移动到 body 以用于第二页?出于性能原因,JS 应该始终位于结束 body 标记之前。此外,JS 可能存在问题,因此无法执行。

您应该能够通过 AJAX 在您的域上加载任何内容而不会出现任何问题,但是需要注意路径问题。

于 2012-08-31T00:50:37.083 回答