gpt4 book ai didi

javascript - 使用 XDomainRequest 调用跨域 AJAX 时出现权限被拒绝错误

转载 作者:行者123 更新时间:2023-11-30 13:26:55 31 4
gpt4 key购买 nike

我创建了一个使用 Google Javascript API 的 php 页面。我正在尝试使用 Ajax 动态填充标记的信息窗口,但在 xdr.open 行上出现权限被拒绝错误。我已经检查了与类似错误相关的其他帖子,并尝试了不同的更改,但仍然是相同的错误。

<!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>

最佳答案

我有一个与此类似的问题,我的客户端代码在本地域(例如 www.domain.local)上运行,试图联系位于 localhost< 的服务器。即使我将 Access-Control-Allow-Origin: * 添加到服务器响应 header 中,我仍然得到拒绝访问。

原来 XDomainRequest 不喜欢尝试从另一个域访问本地主机。参见 http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx 的第 6 点.

我的解决方案是使用我的主机文件创建另一个指向本地主机的假域,然后将 XDR 指向该新域。

关于javascript - 使用 XDomainRequest 调用跨域 AJAX 时出现权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8171697/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com