2012-04-18 3 views
0

기본적으로 달성하고자하는 작업은 Kedo Dataviz 차트의 데이터와 같은 JSON 문자열을 내 WCF 서비스에서 사용하는 것입니다.JSON 결과를 JavaScript의 데이터로 사용하기

내 서비스가 100 % 작동하고 JSON 문자열이 정상이지만 자바 스크립트에서 소비하는 것이 나를 속이고 있습니다. 이것은 내가 데이터에 대한 차트를 결합하기 위해 사용하고 자바 스크립트 함수의 코드 조각입니다

...

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

이것은 내가 URL을 붙여 넣을 때 WCF 서비스에 의해 생성 된 JSON입니다 내 브라우저에 ...

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

문제는 데이터를 그래프에 바인딩하지 않는다는 것입니다. 그래프는 그냥 공백으로 표시됩니다.

내 URL 끝에 .json이 있어야합니까?

저는 JSON을 처음 사용하기에 새 것이므로 어리석은 질문에 대해 유감입니다.

+1

불을 지르고 또는 크롬 디버그 패널을 열고 코드에 중단 점을 넣어보십시오 ... 내 WCF 서비스 인터페이스입니다. 코드가 깨지는 위치를 확인할 때까지 단계별로 진행하십시오. 또한 자바 스크립트 오류 창을 확인 했습니까? –

+1

"문제는 작동하지 않는 것입니다!" 음, "작동하지 않는다"고 정의하십시오. 그 문장을 다시 쓰고 빈칸을 채우십시오 : "그것은 작동하지 않는 것 같습니다. 제가보고있는 문제는 _________입니다." – JAAulde

+0

JavaScript를 실행중인 페이지도 http : // localhost : 8080에서 제공되고 있지 않은 경우 데이터 요청이 브라우저에서 상호 도메인 요청을 할 때 차단 될 수 있습니다. – steveukx

답변

0

그래, 문제가 발견되었지만 해결 방법을 모르겠습니다.

나는 405 Method not allowed 오류가 발생합니다. 이 말은 jsonp을 사용해야한다는 의미입니까?

만약 그렇다면 구현하려면 WCF Interface/url을 어떻게 변경합니까?

나는 이미 &callback=?을 URL에 추가하려고 시도했지만 전혀 작동하지 않았습니다.

여기

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