我創建了一個PHP頁面,利用谷歌的JavaScript API調用的跨域AJAX的時候。我正在嘗試使用Ajax動態地填充標記的信息窗口,但在xdr.open行上獲得權限被拒絕的錯誤。我檢查了與類似錯誤有關的其他帖子,並嘗試了不同的更改,但仍然出現相同的錯誤。權限被拒絕的錯誤使用XDomainRequest
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type=text/javascript>
var marker;
var map;
var xdr;
function loader()
{
alert("XDR onload");
alert("Got: " + xdr.responseText);
}
function Info(pmarker)
{
google.maps.event.addListener(pmarker, 'mouseover', function()
{
if (window.XDomainRequest)
{
xdr = new XDomainRequest();
if(xdr)
{
document.write('1');
xdr.open("GET", "http://localhost/GMap/GroovyCaller.php?Node=Host1");
xdr.send();
document.write('2');
xdr.onload = loader;
}
else
{
document.write('3');
alert('Failed to create');
}
}
else
{
document.write('4');
alert('XDR does not exist');
}
});
}
function createMarker() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Hello World!"
});
Info(marker);
}
function initialize()
{
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions =
{
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
createMarker();
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
此錯誤無關,與谷歌地圖API。據我所知,您只需調用一個本地PHP文件即可。當您在瀏覽器中打開「http://localhost/GMap/GroovyCaller.php?Node = Host1」時會發生什麼? – ThinkingStiff
嗨,謝謝你的迴應......如果我直接調用GroovyCaller,我會得到所需的輸出。這個問題在我引入了Ajax代碼xdomainrequest後開始了。 – A11
我添加了行 header('Access-Control-Allow-Origin:*'); 在php頁面的開始處。但是,錯誤仍然存在。 我試圖尋找更多的選項來解決這個問題,但什麼都沒發現。 任何進一步的幫助將不勝感激。 謝謝, 阿什溫 – A11