2012-04-18 59 views
0

基本上我想完成的是使用JSON字符串,即我從WCF服務獲得的數據作爲Kedo Dataviz圖表的數據。在JavaScript中使用JSON結果

我的服務正在100%工作,我收到的JSON字符串很好,但是在JavaScript中使用它是讓我絆倒的東西。

這是我使用的圖表中的數據綁定JavaScript函數的一個片段:

      function createChart1() { 
          document.getElementById('example').style.visibility = "visible"; 
          document.getElementById('Machines').style.opacity = "0.2"; 
          $("#chart").kendoChart({ 
           theme: $(document).data("kendoSkin") || "black", 
           dataSource: { 
            transport: { 
             read: { 
              type: "GET", 
              contentType: "application/json; chartset=utf-8", 
              url: "http://localhost:8080/mesmobileservice/data", 
              dataType: "json" 
             } 
            },         

           title: { 
            text: "Machine 001" 
           }, 
           legend: { 
            position: "bottom" 
           }, 
           seriesDefaults: { 
            type: "column" 
           }, 
           series: [{ 
            field: "availability", 
            name: "Availability", 
            color: "#FFDC00" 
           }, { 
            field:"performance", 
            name: "Performance", 
            color: "#0047A3" 
           }, { 
            field:"quality", 
            name: "Quality", 
            color: "#C80000" 
           }, { 
            field:"oee", 
            name: "OEE", 
            color: "#00B400" 
           }], 
           valueAxis: { 
            labels: { 
             format: "{0}%" 
            } 
           }, 
           categoryAxis: { 
            categories: [] 
           }, 
           tooltip: { 
            visible: true, 
            format: "{0}%" 
           } 
          }); 
         } 

這是由WCF服務的時候我粘貼URL產生的JSON進入我的瀏覽器...

[{"availability":58.2,"oee":58.3,"performance":69.2,"quality":36.3}] 

問題是它沒有將數據綁定到圖上。圖表只是空白。

我需要在我的url結尾處有一個.json嗎?

我是使用JSON的新品牌,所以對於任何愚蠢的問題抱歉。

+1

嘗試打開螢火蟲或Chrome的調試面板,並把一個斷點在代碼中。逐步瀏覽,直到你看到代碼破壞的地方。另外,你檢查了JavaScript錯誤窗口? – 2012-04-18 15:10:49

+1

「問題是,它似乎沒有工作!」嗯,定義「不工作」。重寫這句話並填上空白:「這似乎沒有奏效,我看到的問題是_________。」 – JAAulde 2012-04-18 15:12:12

+0

運行JavaScript的頁面是否也從http:// localhost:8080獲得服務,如果不是,您的數據請求很可能被瀏覽器阻止,從而導致發出跨域請求。 – steveukx 2012-04-19 06:47:55

回答

0

好的,所以我覺得我發現了這個問題,但我不知道如何解決它。

我收到了405 Method not allowed錯誤。這是否意味着我需要使用jsonp

如果是這樣,我該如何更改我的WCF Interface/url來執行此操作?

我已經嘗試將&callback=?添加到網址,但根本沒有工作。

這裏是我的WCF服務接口...

[WebGet(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "data")] 
    public MES[] GetMESData() 
{ 
    return new[] { new MES(58.2, 69.2, 36.3, 58.3) }; 
}