【问题标题】:.load content from subdomain.从子域加载内容
【发布时间】:2015-02-03 19:52:29
【问题描述】:

我在尝试使用 .load 从子域调用内容时遇到了一些问题

在谷歌搜索和阅读之后并没有真正理解我认为这不能做到吗?

这是我收到的错误:

XMLHttpRequest 无法加载 http://content.domain.co.uk/test.html。不 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“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 来实现 - 但是,我真的不确定要做什么或如何做到这一点。任何帮助将不胜感激。

谢谢!

【问题讨论】:

标签: jquery ajax json


【解决方案1】:

您需要提供一个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2020-07-04
    • 2019-11-27
    • 1970-01-01
    • 2012-02-10
    • 2017-12-14
    • 1970-01-01
    相关资源
    最近更新 更多