从 ajax 调用传递到 wcf 的参数被接收为 null
Posted
技术标签:
【中文标题】从 ajax 调用传递到 wcf 的参数被接收为 null【英文标题】:Parameter passed from ajax call to wcf is received as null 【发布时间】:2017-06-12 12:29:44 【问题描述】:谁能帮帮我。从 ajax 传递到 wcf 的参数被接收为 null。我在堆栈溢出中经历了许多帖子,但找不到修复程序。我的代码 sn-p 如下。谢谢你的期待。
$.ajax(
type: "POST",
url: "/CustomServices/NewsService/getmyWork",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify( itemType: "category" ),
processData: true,
success: function (result) alert("success " + result); ,
error: function (error) alert("failure " + error.statusText);
);
界面是
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "getmyWork/?itemType=itemType", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
SolutionV1.CustomServices.NewsService.DynamicItemsContext DoWork(string itemType);
;
服务方式
public DynamicItemsContext DoWork(string itemType)
var items = RetrieveItems(itemType);
var context = new DynamicItemsContext();
context.Items = items.ToList();
context.TotalCount = items.Count();
return context;
【问题讨论】:
您在 url 中将 itemType 声明为查询参数,但您将其作为 POST 的正文内容传递。 【参考方案1】:您的 WCF 方法设置为 http post 方法,但您的 uri 模板建议该参数将作为 URL 上的查询字符串参数传递。
当您发出 POST 请求时,您的数据将在请求正文中传递,而不是在 URL 中。
尝试为您的方法更改 URI 模板以摆脱查询字符串。
【讨论】:
以上是关于从 ajax 调用传递到 wcf 的参数被接收为 null的主要内容,如果未能解决你的问题,请参考以下文章
ASP Action函数 如何接收前台ajax传递的数据(编辑中。。。)