Webservice仅从JQuery调用返回内部错误500 [英] Webservice returning Internal error 500 only from JQuery call
本文介绍了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:
更多背景...
- 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屋!
查看全文