Webservice仅从JQuery调用返回内部错误500 [英] Webservice returning Internal error 500 only from JQuery call

查看:151
本文介绍了Webservice仅从JQuery调用返回内部错误500的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从JQuery调用时,我收到内部错误500,否则没有收到.请帮忙!!!

I am getting Internal error 500 when I call from JQuery, not otherwise. Help please!!!

jQuery通话

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

网络服务方法:

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

我尝试了提供的所有可能的解决方案,但静态解决方案除外:

I have tried every possible solution provided except for static:

  1. 已启用获取

重新配置的配置文件

更多背景...

  • 我正在使用chart.js来显示图形
  • 要使图表数据动态化,我正在使用Web服务以json格式提供数据.
  • I am using chart.js to display graphs
  • To make the chart data dynamic I am using the webservice to give me data in json format. Here is the reference.
  • This works perfectly if I directly call the webservice. So I wonder if the url provided in JQuery call is wrong! Have tried different combinations but nothing has worked yet! :(

修改: 完整的JQuery代码

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

推荐答案

在网页脚本中进行以下更改

Make following changes 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

        }
}

然后使用Ajax函数

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

这篇关于Webservice仅从JQuery调用返回内部错误500的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆