0

leobee.com と txtease.com という 2 つのドメインがあります。leobee.com から xml スクリプトを txtease.com の php ページにロードしたいと思います。以下のスクリプトを作成するための情報は、stackoverflow のサイトを調べて入手できましたが、この問題を解決する方法がわかりませんでした。

リクエスト スクリプトに php ヘッダーを追加しましたが、「Origin is not allowed by Access-Control-Allow-Origin」というエラーが表示されます。

私のスクリプトを見て、どこが間違っていたのか教えてもらえますか? テスト スクリプトは http://txtease.com/crossdomain/scripts/example.htmlにあります。

chrome/ または firebug コンソールでこれを使用します: createCORSRequest('GET', ' http://www.leobee.com/crossdomain/data/data.xml ');

PHP スクリプト:

    <?php
echo "PHP Running";

header('Access-Control-Allow-Origin: http://www.leobee.com');

?>
<script>
var xhr = new window.XMLHttpRequest();
var string;

function createCORSRequest(method, url) {


  if ("withCredentials" in xhr) {
    // Check if the XMLHttpRequest object has a "withCredentials" property.
    // "withCredentials" only exists on XMLHTTPRequest2 objects.
    xhr.open(method, url, true);
    xhr.send(null);
    string ="with Credentials";
    xhr.onerror = function() {console.log('There was an error!')};
    xhr.onreadystatechange = callbackFunction(string);

  } else if (typeof XDomainRequest != "undefined") {

    xhr = new XDomainRequest();
    xhr.open(method, url);
    xhr.send(null);
    string ="x domain request";
    xhr.onreadystatechange = callbackFunction(string);

  } else if(!"withCredentials" in xhr){

     xhr.open(method, url, true);
     xhr.send(null);
     string ="with no Credentials";
     xhr.onreadystatechange = callbackFunction(string);

  }else {

    // Otherwise, CORS is not supported by the browser.
    alert("cross domain not supported");
    xhr = null;

  }

  return xhr;
}

function callbackFunction(string){

    console.log("Responding function: "+string);
      if (xhr.readyState == 4){
          var responseText = xhr.responseXML;
          console.log("xml string is: "+responseText);

        if (xhr.responseXML ===null){
                responseText=xhr.responseText;
                console.log("html string is: "+responseText);   

        }
      }
    }

</script>
4

1 に答える 1

2

からデータを読み取るためのオリジンhttp://www.leobee.com権限を持つページを与えhttp://txtease.com/scriptExample.phpていますが、その逆である必要があります。

データを読み取るための許可は、データの送信元のサイトから取得する必要があります。サイトは、任意のサイトからデータを読み取る権限を自分自身に付与することはできません。


コンテンツもecho "PHP Running";出力します。header出力コンテンツを取得した後は、電話をかけることはできません。

于 2013-02-27T20:20:02.107 に答える