Bing映射REST-Javascript

Bing映射REST-Javascript,javascript,bing-maps,Javascript,Bing Maps,我是JavaScript的初学者,在解析JSON和显示我想要的数据方面遇到了一些问题。 当我在浏览器中手动运行URL时,我得到了正确的结果 JavaScript代码如下所示: request = "URL" function CallRestService(request, callback) { $.ajax({ url: request, dataType: "jsonp", jsonp: "jsonp", succes

我是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”收到警报 为什么我会得到这个

这就是为什么我不能显示我的数据,我做错了什么

编辑

所以我可以用它来做一个工作代码,但我仍然可以同时从成功和错误中得到信息,我还可以得到我的数据

<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>

var request=“URL”;
函数CallRestService(请求、回调){
$.ajax({
url:请求,
数据类型:“jsonp”,
jsonp:“jsonp”,
成功:功能(r){
回调(r);
console.log(“工作”+r.message);
警报(r.statusText);
},
错误:函数(e){
警报(“错误”+e.message+JSON.stringify(e));
控制台日志(“消息:+e.message”);
log(“readyState:+e.readyState”);
log(“responseText:+e.responseText”);
控制台日志(“状态:+e.status”);
}
});
}
CallRestService(请求、GeocodeCallback);
函数GeocodeCallback(结果){
console.log(results.resourceSets[0].resources[0].travelDurationTraffic);
document.getElementById(“sec”).innerHTML=Math.round((parseFloat(results.resourceSets[0].resources[0].travelDurationTraffic)/60);
}

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


下面是一篇博客文章,展示了如何使用jQuery和其他框架访问Bing Maps REST服务:看起来您的代码非常相似。

您确定从错误函数中得到了该警报吗?您也在成功功能中创建了一个警报。是的,我删除了成功行只是为了确保,它100%来自错误功能。谢谢您的回复,是的,有一个工作URL。现在我收到了来自成功和错误的消息,这真的很奇怪,但我也得到了我想要的结果。错误消息是:message:undefined test.php:25 readyState:4 status:200,从我获得的成功信息来看:unefined关于博客的链接,是的,我使用此代码作为模板readyState 4很好,这意味着请求完成,响应准备就绪。200表示请求成功。查看成功函数,您有一行“var result=data.resourceSet”,但数据未定义,这很可能是您的错误所在。