0

这将与我之前的问题(Loading a php file into cross domain page with dynamic element height)大致相同,但现在尝试使用新方法。

我找到了一种将我的脚本加载到本地 ajax div 的方法,但仍然存在跨域安全问题,不允许 xmlhttprequest 调用我的其他服务器。

这里的问题仍然是在站点 A 上,这是我可以完全访问并托管我的脚本文件的 Web 服务器,我可以对脚本做任何我想做的事情并使其工作。在 Enjin 服务器上的站点 B 上,我无权访问主机脚本。我可以将 .js 脚本放在那里并运行它们,但我不能从他们的服务器上使用 php,这会产生我的问题。为了立即解决这个问题,我使用了 iframe,至少可以说效率低下。它无法从它从站点 A 调用的 php 文件生成的内容中加载动态高度。我计划通过 AJAX 将其加载到 div 中来解决这个问题,但我遇到了一些问题。

我的 AJAX 脚本是这样的:

<pre><code>function Ajax(){
    var xmlHttp;
        try{    
            xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
        }
        catch (e){
            try{
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
            }
            catch (e){
                try{
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e){
                    alert("No AJAX!?");
                    return false;
                }
            }
        }

    xmlHttp.onreadystatechange=function(){
        if(xmlHttp.readyState==4){
            document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
            setTimeout('Ajax()',10000);
        }
    }
    xmlHttp.open("GET","http://sitea.com/twitch_api/stream_header.php",true);
    xmlHttp.send(null);
    }

    window.onload=function(){
        setTimeout('Ajax()',10000);
    }
</code></pre>

那么显然 div 正在遵循脚本。

这是调用的脚本是这样的:

http://pastebin.com/mC8kakKJ

抱歉,无法在代码块中正确解析所有代码,但我制作了脚本的 pastebin 副本

我这里的问题变成了。我的脚本需要什么样的外观才能与 easyXDM 一起使用?我没有像这样或 cors 的库的经验,所以一个示例标记会很棒。

我也不是很精通 javascript/ajax,这导致了我的第二个问题。我上面列出了我的 ajax 代码,我将如何让该 div 立即填充所需的文件,然后每 300000 毫秒(5 分钟)更新一次。

任何帮助表示赞赏。在 Enjin 论坛上有一个帖子,但没有太多人有这种深度的经验。

4

1 回答 1

0

您可以使用 $.getJSON(),Enjin 页面使用 jQuery。只需确保您的服务器响应包含在回调函数中,以便允许跨站点请求。

于 2013-06-17T02:08:43.133 回答