尝试使用.load调用子域中的内容时出现问题
经过谷歌搜索和阅读并没有真正理解我不认为这可以做到吗?
以下是我收到的错误:
XMLHttpRequest无法加载http://content.domain.co.uk/test.html。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://www.domain.co.uk'因此是不允许的 访问。
我已经在某处读过我可以将document.domain添加到我的外部文件中 - 这也不起作用 - 我这样做了吗?!我不确定。
<script type="text/javascript">
document.domain = 'domain.co.uk';
</script>
这是我的代码:
$(function() {
$('#activate').click( function() {
$('#activate').hide();
$('#loadingImg').show();
$('#testContainer').load('http://content.domain.co.uk/test.html #main', function() {
$('#loadingImg').hide();
});
});
});
我已经读过,我尝试做的事情可能是使用JSON实现的 - 但是,我真的不知道该怎么做或怎么做。任何帮助都会非常感激。
谢谢!
答案 0 :(得分:0)
您需要提供一个Access-Control-Allow-Origin标头才能工作。 由于您正在访问.html文件,因此必须通过Web服务器完成。 如果您使用的是Apache,请执行以下操作:http://enable-cors.org/server_apache.html
如果子域在您的控制之下,您可以使用某种脚本语言包装html文件,例如PHP:
<?php
header("Content-type: text/plain; charset=utf8");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
echo file_get_contents("file.html");
?>
另一种方法是使用JSONP:http://en.wikipedia.org/wiki/JSONP