【问题标题】:Bing Maps REST - Javascript必应地图 REST - Javascript
【发布时间】:2016-02-18 20:12:09
【问题描述】:

我是 JavaScript 的初学者,在解析 JSON 和显示我想要的数据时遇到了一些问题。 当我在浏览器中手动运行 URL 时,我得到了正确的结果。

JavaScript 代码如下所示:

request = "URL"
function CallRestService(request, callback) {
    $.ajax({
        url: request,
        dataType: "jsonp",
        jsonp: "jsonp",
        success: function (r) {
            callback(r);
            var results = data.resourceSets;
            console.log(r.message);
            alert(r.statusText);
        },
        error: function (e) {
            alert("Error" + JSON.stringify(e));
            console.log("Error" + e.message);

        }
    });
}

当我运行此代码时,我在控制台中没有收到任何错误,但我仍然通过错误函数收到警报:“status”:200,“statusText”:“OK” 为什么我会得到这个?

这就是为什么我无法显示我的数据,我做错了什么?

编辑

所以我能够从中制作出一个工作代码,但我仍然会同时收到来自 SUCCESS 和 ERROR 的消息,并且我还可以取回我的数据?!

<script>
var request = "URL";

function CallRestService(request, callback) {
    $.ajax({
        url: request,
        dataType: "jsonp",
        jsonp: "jsonp",
        success: function (r) {
            callback(r);
            console.log("working" + r.message);
            alert(r.statusText);
        },
        error: function (e) {
            alert("Error" + e.message + JSON.stringify(e));
            console.log("message: " + e.message);
            console.log("readyState: " + e.readyState);
            console.log("responseText: "+ e.responseText);
            console.log("status: " + e.status);



        }
    });
}
CallRestService(request, GeocodeCallback);
function GeocodeCallback(results) {
console.log(results.resourceSets[0].resources[0].travelDurationTraffic);
document.getElementById("sec").innerHTML=Math.round((parseFloat(results.resourceSets[0].resources[0].travelDurationTraffic) / 60));
}


</script>

【问题讨论】:

  • 你确定你从错误函数中得到那个警报吗?您也在成功函数中创建警报。
  • 是的,我删除了成功线只是为了确定,它 100% 来自错误函数

标签: javascript bing-maps


【解决方案1】:

假设您将实际 URL 放入请求参数中,这看起来很好。 200 状态表示它是成功的,这可能会从您的成功函数调用控制台。我知道您说您确实删除了它,但是该页面可能已被缓存。如果您查看网络请求,您可能会发现它也成功了。如果有可能您的成功函数中发生错误并触发错误函数。您是否尝试过在这两个函数中添加断点?

这是一篇博文,展示了如何使用 jQuery 和其他框架访问 Bing 地图 REST 服务:https://blogs.bing.com/maps/2015/03/05/accessing-the-bing-maps-rest-services-from-various-javascript-frameworks/ 看起来您的代码非常相似。

【讨论】:

  • 您好,感谢您的回复,是的,有一个有效的 URL。目前我收到来自成功和错误的消息,这真的很奇怪,但我也得到了我想要的结果。错误消息是: message: undefined test.php:25 readyState: 4 status: 200 并形成我得到的成功: unfefined
  • 关于博客的链接,是的,我正在使用此代码作为模板
  • ReadyState 4 好,表示请求完成,响应就绪。 200 表示请求成功。查看您的成功函数,您有一行“var result = data.resourceSet”,但数据未定义,这很可能是您的错误。
猜你喜欢
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多