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>