2

我之前问过一个与此类似的问题,但也许这更清楚一点。

我正在尝试从 OSRM 路由服务器(此处的 API:https ://github.com/DennisOSRM/Project-OSRM/wiki/Server-api )检索 json 数据。

我目前正在使用此代码:

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);
    });
});

如果您将 url 放入由 jquery 生成的浏览器中,那么您会看到 400 错误,因为 jquery 添加了“& = [TIMESTAMP]”参数。但是您的远程服务器说,然后该 url 格式错误。如果你给 jquery 一个真值的“缓存”选项,它不会附加“ ”参数。

如果您还有其他问题,请尝试将“成功”替换为“始终”回调,因为每次回调成功与否都会通知您。因为有时在 jquery 中会出现错误,而您在开发人员工具中不会注意到

于 2013-04-20T17:50:24.773 回答