c# - 将 JSON 对象发送到 .NET Web 服务时发生内部服务器错误

标签 c# javascript jquery .net web-services

我在向 .NET Web 服务提交复杂的 JSON 对象时遇到问题。

Ajax JavaScript 代码:

$.ajax({
    type: "POST",
    url: WEBSERVICE_ADMINISTRATIO_URL + "RecieveData",

    data: JSON.stringify({data: _data}), // _data is the Javascipt object {}
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert(data);
    },
    failure: function (errMsg) {
        alert(errMsg);
    },
    error: function (jqXHR, textStatus, errorThrow) {
        alert(textStatus);
    }
});

.NET Web 服务

 [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string RecieveData(string data)
    {

        return "";
    }

当我尝试从客户端将数据提交到 Web 服务时,收到内部服务器错误 500

我有其他网络服务功能,只返回数据,并且它们工作正常。我在 web.config 中授予了 GET 和 POST 权限。

这是详细的错误:

"{"Message":"No parameterless constructor defined for type of 
 \u0027System.String\u0027.","StackTrace":"   at 
system.Web.Script.Serialization.ObjectConverter.ConvertDictionaryToObject(IDictionary`2 dictionary, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object\u0026 convertedObject)\r\n   at 
System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object\u0026 convertedObject)\r\n   at 
System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object\u0026 convertedObject)\r\n   at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToType(Object o, Type type, JavaScriptSerializer serializer)\r\n   at System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary`2 rawParams)\r\n   at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.MissingMethodException"}"

谢谢。

最佳答案

感谢大家的支持。我通过将参数数据类型从字符串更改为对象来解决这个问题。

 public string RecieveData(Object data)
{

    return "";
}

关于c# - 将 JSON 对象发送到 .NET Web 服务时发生内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228339/

相关文章:

c# - 在 WPF 列表框中禁用键盘导航

javascript - 选择下拉框时如何更改 <div> 边框颜色

Javascript - 从base64图像获取扩展

javascript - 可折叠内容未显示,可能是由于脚本所致

jQuery 表格排序

c# - 我想安装Ubuntu或除Microsoft Windows以外的任何其他操作系统,请告诉我哪个操作系统最适合开发

c# - 如何向 WCF ServiceContract 命名空间添加前缀

c# - 将对象列表保存到 XML 文件并使用 C# 加载该列表的最佳方法是什么?

javascript - 分配处理成本与条件

javascript - 如何反向地理编码以获取给定州/地区或城市名称的国家/地区名称?