是否可以通过AJAX请求获取静态资产?

时间:2011-07-05 09:03:39

标签: javascript html ajax static apache

也许我的搜索功能缺乏,但我找不到任何有关获取静态资产的信息,例如带有XHR / AJAX请求的JSON或XML文件。我猜这可能是依赖于Web服务器的,但让我们假设Apache httpd。这可能吗?如果不是为什么不呢?

2 个答案:

答案 0 :(得分:1)

是。 XHR只是向服务器发送HTTP请求的一种方式。服务器以通常的方式响应它,不需要特殊的服务器配置。

浏览器对XHR施加了一些限制。具体来说,默认情况下,它们只允许您使用XHR来请求与加载运行XHR的脚本的文档具有相同 origin 的资源;这被称为Same Origin Policy。因此,如果我的脚本由http://example.com上的文档加载,我就无法使用XHR来请求http://foo.com/index.html

有一个名为Cross-Origin Resource Sharing的新(ish)标准,它允许浏览器和服务器协同工作以对该策略进行例外处理。在现代浏览器中支持CORS,但遗憾的是在IE中它仅通过XDomainRequest对象支持(仅在IE8及更高版本中),而不是通常的XMLHttpRequest对象。 (Firefox和Chrome在XMLHttpRequest支持它,希望有一天微软也能看到它。)

答案 1 :(得分:0)

静态资源在HTTP世界中没有什么不同。当您进行AJAX调用时,您使用具有指定扩展名的URL(如png或pdf)。无论发出请求的人是谁(当然,如果你不干涉),Web服务器都会看到这个扩展并提供服务。我们假设您使用jQuery ajax。作为成功回调的参数,您可以使用响应:

$.ajax({
    // parameters here
    success: function (response) {
        // Here you have access to response.
    }
});