0

xhr オブジェクトを使用して、mapquest オープン API (Nominatim および Directions) から情報を取得します。

私の問題は、Nominatim サービスでは機能し、Directions では機能しないことです (Firefox の最新バージョンでテスト済み)。readystate は 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 では機能し、 direction では機能しないのか理解できません!

ありがとう

4

1 に答える 1

0

Nominatim はCORS (ブラウザーが Nomatim API に対してクロスドメイン要求を実行できるようにする) をサポートしています。mapquest フォーラムのこのコメントで示唆されているように、Mapquest はそうではありません。

于 2013-01-30T00:01:09.523 に答える