0

これは、以前の質問 (動的要素の高さを使用してクロス ドメイン ページに php ファイルをロードする) と同じ問題になりますが、新しい方法を使用しようとしています。

スクリプトを 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

申し訳ありませんが、コード ブロック内のすべてのコードを正しく解析することはできませんが、スクリプトのペーストビン コピーを作成しました

ここでの私の質問は次のようになります。easyXDM で使用するには、スクリプトをどのようにする必要がありますか? 私はこのようなライブラリやcorsの経験がないので、マークアップの例は素晴らしいでしょう.

また、私は2番目の質問につながるjavascript/ajaxに精通しているわけではありません。私は上記の ajax コードを使用していますが、その div に目的のファイルをすぐに入力し、300000ms (5 分) ごとに更新するにはどうすればよいでしょうか。

どんな助けでも大歓迎です。Enjin フォーラムに投稿しますが、ここまで深く掘り下げた経験のある人はあまり多くありません。

4

1 に答える 1

0

$.getJSON() を使用できます。Enjin ページは jQuery を使用します。クロス サイト リクエストが許可されるように、サーバーの応答がコールバック関数でラップされていることを確認してください。

于 2013-06-17T02:08:43.133 に答える