【发布时间】:2014-01-09 18:53:50
【问题描述】:
对 WCF 非常陌生,除了从 JQuery 到 WCF 的帖子之外,几乎一切正常。
Jquery 正在处理 DynaTree 并将数据发布到 WCF 服务。 到现在为止还挺好。
当我调试时,我发现在 WCF 例程中作为 Stream 接受的发布数据是原始格式并且包含 HTML 字符 %...
我期待帖子以 Json 格式发送数据,但不清楚问题出在哪里。 事实上,我不得不在 Post 操作中注释掉内容类型,因为它会产生一个错误,指出需要 RAW 格式。
WCR URL 请求类似于 localhost/TS.svc/SaveTree/New?username=thisuser
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "SaveTree/New",
BodyStyle = WebMessageBodyStyle.Wrapped)]
public List<TreeNode> SaveTree(Stream data)
{
string username = HttpContext.Current.Request.QueryString["username"] ?? string.Empty;
var jsonString = new StreamReader(data).ReadToEnd();
...}
JQuery 端:
onDrop: function(node, sourceNode, hitMode, ui, draggable) {
sourceNode.move(node, hitMode);
var dict = $("#tree").dynatree("getTree").toDict();
var postData = JSON.stringify(dict);
$.ajax({
type: "POST",
url: "TS.svc/SaveUserTree/New?userame=" + $("#hdnUserFile").val(),
//contentType: "application/json; charset=utf-8",
dataType: "json",
data: {tree:postData},
请帮忙。谢谢,
【问题讨论】: