2016-02-17 110 views
0

我是一名JavaScript初學者,我正在解析JSON並顯示我想要的數據。 當我在瀏覽器中運行URL時,我得到了一個正確的結果。Bing地圖REST - Javascript

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

     } 
    }); 
} 

當我運行這段代碼我在控制檯中沒有錯誤,但我仍然可以通過誤差函數的警告:「狀態」:200,「狀態文本」 :「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> 
+0

你確定你從錯誤功能獲得警報嗎?您也正在成功功能中創建警報。 – forgivenson

+0

是的,我刪除了成功線只是爲了確保它的100%來自錯誤函數 – eschi1

回答

0

假設你把一個實際的URL放到請求參數中,這看起來很好。 200狀態意味着它是成功的,這可能是您的成功功能稱爲控制檯。我知道你說過你刪除了它,但頁面可能已被緩存。如果您查看網絡請求,您可能會發現它也是成功的。如果可能發生成功功能錯誤並觸發錯誤功能。你有沒有嘗試在兩個函數中添加斷點?

這是一篇博客文章,展示如何使用jQuery和其他框架訪問Bing Maps REST服務:https://blogs.bing.com/maps/2015/03/05/accessing-the-bing-maps-rest-services-from-various-javascript-frameworks/看起來您的代碼非常相似。

+0

嗨感謝您的回覆,是的,有一個工作網址。 目前我收到來自兩者的信息,成功和錯誤,這真的很奇怪,但我也得到了我想要的結果。 的錯誤信息是: 消息:未定義 test.php的:25的readyState:4 狀態:200 ,形成成功,我得到: unfefined – eschi1

+0

有關鏈接到博客,是的,我使用此代碼作爲模板 – eschi1

+0

ReadyState 4很好,它表示請求已完成並且響應已準備就緒。 200表示請求成功。看看你的成功函數,你有一行「var result = data.resourceSet」,但是數據是未定義的,這可能是你的錯誤所在。 – rbrundritt