jQuery.ajax在服务器上给出了“TypeError:无法读取null的属性'documentElement',但不是本地的

时间:2010-02-03 02:20:59

标签: javascript jquery xml ajax

我在http://alpha.spherecat1.com/上的jQuery代码有问题,但本地副本工作正常。如您现在访问该网站所示,ajax调用会出现以下错误:

“TypeError:无法读取属性'documentElement'的null”

我已经检查并重新检查并重新上载了我能想到的一切。该文档说,以确保我发送正确的MIME类型,我做了无济于事。这是有问题的代码:

function changePageAJAX(newPage, method)
{
    if (method != "replace")
    {
        window.location.hash = newPage;
    }
    newPage = newPage.substring(1); // Remove the hash symbol.
    title = "SphereCat1.com | " + fixCase(newPage.replace(/\//g, " > ")); // Set the window title.
    newPage = "ajax/" + newPage + ".html"; // Add path.
    if (newPage == currentPage)
    {
        return; // Don't let them load the current page again.
    }
    $.ajax({ // jQuery makes me feel like a code ninja.
        url: newPage,
        dataType: "xml",
        success: function(data, status, xmlhttp){ renderPage(xmlhttp); },
        error: function(xmlhttp, status, error){ alert(error); renderPage(xmlhttp); }
    });
    document.title = title;
    currentPage = newPage;
}

然后继续将页面呈现为div。它抓取的页面在前一个URL的/ ajax文件夹中可见。非常感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:7)

从ajax调用中抛出错误:

error: function(xmlhttp, status, error)...

由于您需要XML dataType,因此对“ajax / home.html”url的调用将返回mime类型“text / html”。您可能希望完全省略数据类型,以便jQuery的intelligent guess启动。例如:

$.ajax({ // jQuery makes me feel like a code ninja.
  url: newPage,
  success: function(data, status, xmlhttp){ renderPage(xmlhttp); },
  error: function(xmlhttp, status, error){ alert(error); renderPage(xmlhttp); }
});

您在alert()中还有以下appendCSS,我认为这是用于调试的?:

function appendCSS(filename)
{
    alert(filename);
    if (filename != null)
    {
        $("head").append("<link rel='stylesheet' id='extracss' href='"+filename+"' type='text/css' />");
    }
}