2017-03-23 3 views
0

Ich bekomme Interner Fehler 500, wenn ich von JQuery aufrufen, nicht anders. Hilfe bitte!!!Webservice-Rückgabe Interner Fehler 500 nur von JQuery-Aufruf

JQuery Anruf

$.ajax({ 
        type: "POST", 
        url: "myWebService.asmx/getnpsTrend", 
        data: jsonData, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: OnSuccess_, 
        error: OnErrorCall_ 
       }); 

Webservice-Methode:

  1. :

     [WebMethod] 
         [System.Web.Script.Services.ScriptMethod(UseHttpGet = true)] 
         public List<ChartDatasets> getnpsTrend(string region, string client, string product) 
         { 
         <code> 
         } 
    

    ich jede mögliche Lösung außer für statische vorgesehen versucht haben,

  2. Reconfigured Config file

Mehr Hintergrund ...

  • ich chart.js bin mit Graphen anzuzeigen
  • Um die Diagrammdaten dynamisch mache ich den Webservice bin mit zu geben, Ich Daten im JSON-Format. Here ist die Referenz.
  • Das funktioniert einwandfrei, wenn ich direkt den Webservice anrufe. Also ich frage mich, ob die URL in JQuery Aufruf falsch ist! Habe verschiedene Kombinationen ausprobiert aber nichts hat noch funktioniert! :(

Edit: komplette JQuery Code

<script> 

     $(document).ready(function() { 
      $("#btn_line_chart").on('click', function() { 
       var fil_reg = $("#ddlRegion").val(); 
       var fil_cli = $("#ddlClient").val(); 
       var fil_prd = $("#ddlProduct").val(); 

       console.log("Inside function"); 
       console.log(fil_reg); 
       var jsonData = JSON.stringify({ 
        jsn_reg: fil_reg, 
        jsn_cli: fil_cli, 
        jsn_prd: fil_prd 
       }); 


       $.ajax({ 
        type: "POST", 
        url: "myWebService.asmx/getnpsTrend", 
        data: jsonData, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: OnSuccess_, 
        error: OnErrorCall_ 
       }); 

       function OnSuccess_(reponse) { 
        var aData = reponse.d; 
        var aLabels = aData[0]; 
        var aDatasets1 = aData[1]; 
        var aDatasets2 = aData[2]; 

        var data = { 
         labels: aLabels, 
         datasets: [{ 
          label: "My First dataset", 
          fillColor: "rgba(220,220,220,0.2)", 
          strokeColor: "rgba(220,220,220,1)", 
          pointColor: "rgba(220,220,220,1)", 
          pointStrokeColor: "#fff", 
          pointHighlightFill: "#fff", 
          pointHighlightStroke: "rgba(220,220,220,1)", 
          data: aDatasets1 
         }, 
         { 
          label: "My Second dataset", 
          fillColor: "rgba(151,187,205,0.2)", 
          strokeColor: "rgba(151,187,205,1)", 
          pointColor: "rgba(151,187,205,1)", 
          pointStrokeColor: "#fff", 
          pointHighlightFill: "#fff", 
          pointHighlightStroke: "rgba(151,187,205,1)", 
          data: aDatasets2 
         }] 
        }; 

        var ctx = $("#myChart").get(0).getContext('2d'); 
        ctx.canvas.height = 300; // setting height of canvas 
        ctx.canvas.width = 500; // setting width of canvas 
        var lineChart = new Chart(ctx).Line(data, { 
         bezierCurve: false 
        }); 
       } 
       function OnErrorCall_(repo) { 
        alert("Woops something went wrong, pls try later !"); 
       } 
      }); 
     }); 

    </script> 

Antwort

0

Fabrikat folgende Änderungen in WebScript

[System.Web.Script.Services.ScriptService] // add top of Class file 
    public class myWebService: System.Web.Services.WebService 
    { 
     [WebMethod(EnableSession = true)] 
     public List<ChartDatasets> getnpsTrend(string region, string client, string product) 
     { 
     //Check if we get All Parameters from Ajax function i.e region, client and product 

     // Code 

     } 
} 

Dann in Ajax Funktion

$.ajax({ 
      url: '../myWebService.asmx/getnpsTrend', 
      data: "{'region': '" + regionvalue + "'}, 'client': '" + clientvalue + "','product': '" + productvalue + "'", 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      success: function (data) 
      { 
       if (data != null) 
       { 
        // use data.d value 

       } 
      }, 
      error: function (data) 
      { 
       alert("Error message "); 
      } 
     }); 
+0

Vielen Dank für Ihre Antwort! Leider habe ich alle von Ihnen erwähnten Änderungen implementiert. Es muss noch funktionieren! Ich habe meine Frage mit dem vollständigen Code aktualisiert. Bitte lassen Sie mich wissen, wenn Sie etwas anderes fehlen finden. Vielen Dank! – Linda

+0

Anstelle von Daten: jsonData versuchen, Daten zu übergeben: "{'region': '" + regionalwert +' '},' client ':' "+ clientvalue + '', 'product': '" + productvalue +' '" } – Ricky007

+0

Immer noch der gleiche Fehler :( – Linda