我使用 xhr 对象从 mapquest 开放 API(Nominatim 和 Directions)获取信息。
我的问题是它适用于 Nominatim 服务,但不适用于 Directions(使用 Firefox 最新版本测试)。我的就绪状态为 4,但状态为 0,并且它永远不会改变。
这是我的代码:
var xhr;
try
{
xhr = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (e)
{
try
{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e2)
{
try
{
xhr = new XMLHttpRequest();
}
catch (e3)
{
xhr = false;
}
}
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
alert(xhr.responseText);
}
}
};
xhr.open("GET", "http://open.mapquestapi.com/directions/v1/route?format=json&routeType="+routeType+"&timeType=0&enhancedNarrative=false&shapeFormat=raw&generalize=200&locale=fr_FR&unit=k&from="+latitude+","+longitude+"&to="+json[0].lat+","+json[0].lng+"&narrativeType=none", true);
xhr.send(null);
URL 中的所有参数都在上面的代码中定义。
我只是不明白它为什么会起作用(因为它不应该因为这些请求是跨域的)以及为什么它适用于 nominatim 而不是方向!
谢谢