Javascript 邮递http://localhost:13799/HealthPotliWebService.asmx/CreateMarkers 500(内部服务器错误)
我正在尝试将JSON对象发布到asp.net Web服务Javascript 邮递http://localhost:13799/HealthPotliWebService.asmx/CreateMarkers 500(内部服务器错误),javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我正在尝试将JSON对象发布到asp.net Web服务 var markers = [{ "position": "128.3657142857143", "markerPosition": "7" }, { "position": "235.1944023323615", "markerPosition": "19" }, { "position": "42.5978231292517", "markerPosition": "-3
var markers = [{ "position": "128.3657142857143", "markerPosition": "7" },
{ "position": "235.1944023323615", "markerPosition": "19" },
{ "position": "42.5978231292517", "markerPosition": "-3" }];
$.ajax({
type: "POST",
url: "/webservices/PodcastService.asmx/CreateMarkers",
// The key needs to match your method's input parameter (case-sensitive).
data: JSON.stringify({ Markers: markers }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
在服务器端,将方法的输入参数与要传递的数据的形状相匹配:
public class Marker
{
public decimal position { get; set; }
public int markerPosition { get; set; }
}
[WebMethod]
public string CreateMarkers(List<Marker> Markers)
{
return "Received " + Markers.Count + " markers.";
}
公共类标记
{
公共小数位置{get;set;}
公共整数标记位置{get;set;}
}
[网络方法]
公共字符串创建标记(列表标记)
{
返回“已接收”+标记。计数+“标记。”;
}
我得到这个错误:
职位
500(内部服务器错误)
我认为您必须在class an属性上放置[DataContract]和[DataMember]标记,以反序列化输入,删除参数一次,然后从js中点击web服务。如下[WebMethod][ScriptMethod(ResponseFormat=ResponseFormat.Json)]公共字符串CreateMarkets(列表标记){return“Received”+Markers.Count+“Markers.”;}praveen,当我删除参数时,它会起作用。