跨域AJAX调用,授权所有文件内容请求?

时间:2012-05-29 15:46:29

标签: javascript ajax

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

横幅广告位于网站A上。在网站B上,我有以下代码:

<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');

2 个答案:

答案 0 :(得分:0)

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

修改

查看JavaScript调用本身会有所帮助,但如果您将错误插入Google或Bing,那么我的第一个结果就是另一个SO帖子:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin

答案 1 :(得分:0)

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

$('<iframe />', {
    name: 'myFrame',
    id:   'myFrame',
    src:  'http://www.mywebsite.com/'
}).appendTo('body');