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