2

これと似たような質問を以前にしましたが、おそらくこれはもう少し明確です。

OSRMルーティングサーバーからjsonデータを取得しようとしています(ここのAPI: https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api )。

私は現在このコードを使用しています:

http://jsfiddle.net/FhfVW/10/

$(function () {
$("#getJSON").click(function () {
    var url = "http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001&jsonp=myroute";
    $.ajax({
        dataType: "json",
        url: url,
        jsonpCallback: 'myroute',
        success: function (data) {
            test = data.route_geometry;
            alert(test);
        }
    });
});
});

しかし、私はこれから何の応答も得ません。明らかに何かが間違っていますが、コールバックと「jsonp = myroute」部分を削除しようとしましたが、どちらも成功しませんでした。

助けてくれてありがとう。

ニック

4

1 に答える 1

1

最後に、私はこれを機能させました

$(function () {
    var url = "http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001";
    $.ajax(url, {dataType:"jsonp", jsonp:"jsonp", cache:true}).success(function() {
       console.log(arguments);
    });
});

jquery によって生成された URL をブラウザに入力すると、jquery が「& =[TIMESTAMP]」パラメータを追加するため、400 エラーが表示されます。しかし、リモート サーバーは、URL の形式が正しくないと言っています。jquery に "cache" オプションに true 値を指定すると、" " パラメータは追加されません。

さらに問題がある場合は、「成功」を「常に」コールバックに置き換えてみてください。コールバックが成功するかどうかのたびに通知されるようになります。jquery 内で開発者ツールでは気付かないようなエラーが発生することがあるためです。

于 2013-04-20T17:50:24.773 に答える