使用jQuery"加载"本地文件上的方法

时间:2014-07-03 17:18:31

标签: javascript jquery html node.js dom

我正在尝试创建一个网站,其中每个网页都有相同的标题栏 - 这是一个非常标准的问题。要加载标题栏的HTML,我使用jQuery"加载"方法:

$("#title-bar").load("path/to/titlebar-code.html")

然而,很明显,#34;加载" 真的非常不喜欢从本地文件系统加载文件。我无法访问远程服务器,因此这是一个问题。 (我依靠我的大学来主持这个网站,他们还没有设置服务器。)所以在解决这个问题之前我无法查看或测试该网站。

尝试的解决方案:我尝试使用我发现的代码here运行带有Node.js的本地服务器,以欺骗jQuery发出请求。这是服务器代码:

var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(serveStatic(__dirname)).listen(8080);

新的jQuery请求:

$("#title-bar").load("http://localhost:8080/path/to/titlebar-code.html")

...返回错误:

  

否'访问控制 - 允许 - 来源'标题出现在请求的上   资源。起源' null'因此不允许访问。

我的网络体验有限,我不确定如何继续。有谁知道加载这样的文件的方法? (完全不同的解决方案是受欢迎的; Node和jQuery看起来似乎是有希望继续的方式)


解决

根据下面的Hanlet评论,我从http://localhost:8080而不是file://path/to/website访问了网站,就像我一直在做的那样。然后我从上面运行load(http://localhost...)命令。没有问题。

1 个答案:

答案 0 :(得分:0)

Jquery ajax仅限于相同的域策略,本地文件或localhost文件,只要它与您的脚本的托管域不是同一个域,它就不起作用。

您需要在要加载文件的远程服务器上启用CORS(跨源资源共享)。