0

我想为其他网站提供我网站的横幅,但我想将横幅保留在我的服务器上,并让它们包含在 javascript 中,就像 Facebook 插件/谷歌广告一样。

横幅托管在站点 A 上。站点 BI 具有以下代码:

<div id="bannerContainer"></div>
<script type="text/javascript" src="http://mysite.com/plugins/includebanner.js"></script>

includebanner.js 执行 AJAX 调用以获取横幅并将其放置在bannerContainer 中,但出现错误:

Origin http://lventas.com is not allowed by Access-Control-Allow-Origin.

如何允许所有网站包含横幅?是否有其他简单的方法可以包含来自其他站点的站点 A 中托管的横幅?

编辑:

This is the script that requests the content:

function ajax(url, id_contenedor)
{
    var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        try 
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
function cargarpagina (pagina_requerida, id_contenedor)
{
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
    document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}

ajax('http://lujanventas.com/plugins/banner/index.php', 'banner-root');
4

2 回答 2

0

看来您遇到了正常的 JS 跨站点脚本限制。默认情况下,跨站点脚本功能对可以调用端点的对象和对象施加一些限制。您没有提供任何代码示例,但您可以查看此链接作为示例:http: //jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying -with-jquery.html

编辑:

查看 JavaScript 调用本身会有所帮助,但是如果您将错误插入 Google 或 Bing,对我来说,第一个结果是另一个 SO 帖子:XmlHttpRequest 错误:Access-Control-Allow-Origin 不允许 Origin null

于 2012-05-29T15:51:46.607 回答
0

使用 javascript/jquery,您可以绘制 iframe 而不是 div,并将其 src 属性设置为横幅的 url。

$('<iframe />', {
    name: 'myFrame',
    id:   'myFrame',
    src:  'http://www.mywebsite.com/'
}).appendTo('body');
于 2012-05-29T16:02:55.900 回答