1

我试图想出最好的方法来维护一个包含大量页面的网站,并且我选择为“常见”HTML 元素(如页眉和页脚)创建单独的 HTML 文件。

目前,我的index.html页面是这样设置的,jQuery 函数应该在其中注入text.html到页脚 div 中。

<html>
<head>
<title>Test Site</title>
<script src="jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
      $("#footer").load("text.html");
    });
</script>
</head>
<body>
    <div id="footer"></div>
</body>
</html>

text.html的内容是:

<div style="red">
    Hello, world!
</div>

这似乎不起作用,我收到以下错误

XMLHttpRequest 无法加载 file:///Users/Jon/Desktop/text.html。Access-Control-Allow-Origin 不允许 Origin null

问题:这可以通过 jQuery 实现,还是我必须使用 PHP/其他东西?我知道 Wordpress 做类似的事情,但我很确定他们使用 PHP。如果我能让它发挥作用,这种方法将非常可持续。

4

2 回答 2

0

在大多数浏览器中,您无法通过 AJAX 请求加载 file:// URL,否则您会得到Origin null is not allowed by Access-Control-Allow-Origin. 我相信 Firefox 会允许,但 Chrome/Safari 不会。(有关更多信息,请参阅Google Chrome --allow-file-access-from-files disabled for Chrome Beta 8

最简单的方法是运行本地网络服务器,然后您就不会收到该错误。

此外,就您所做的而言,有比 jQuery 更好的库来执行此操作。我正在使用https://github.com/linkedin/dustjs/wiki/Reusable-UI-Dust-modules - 这类似于如何在 HTML 中定义小胡子部分?- 两者都有其他文件的部分/包含。您还可以查看http://pagerjs.com/

另一个值得一试的项目是http://docpad.org/ - 它还将为您安装一个网络服务器。完成网站工作后,您可以从所有部分生成静态 HTML。

于 2013-05-15T03:36:00.260 回答
0

你不需要服务器端语言

重播评论中描述的错误消息

XMLHttpRequest 无法加载 file:///Users/Jon/Desktop/text.html。Access-Control-Allow-Origin 不允许 Origin null

你需要一个本机 Web 服务器设置,并通过调用 localhost 或 127.0.0.1 来运行它


好读

Jquery:在没有网络服务器的情况下在本地运行 AJAX

于 2013-05-15T03:36:10.207 回答