我有一个非常基本的ScriptMethod
:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetData(string token)
{
Context.Response.ContentType = "text/json";
Context.Response.Clear();
Context.Response.BufferOutput = true;
List<string> data = new List<string>() { "foo", "bar", "foobar" };
using (var stream = new StreamWriter(Context.Response.OutputStream))
{
JsonSerializer.Create().Serialize(stream, data);
}
Context.Response.OutputStream.Flush();
}
如果我通过GET点击此API,我会收到一个可接受的响应:
["foo","bar","foobar"]
如果我通过POST点击此API,我会收到格式错误的回复:
["foo","bar","foobar"]{"d":null}
如何使此函数编写响应,而不附加d
对象?
答案 0 :(得分:0)
您不必自己处理序列化,让框架为您执行此操作。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string> GetData(string token)
{
return new List<string>() { "foo", "bar", "foobar" };
}
我认为你会得到的是d[ [ "foo", "bar", "foobar" ] ]
,但至少它是有效的。 d[]
构造是安全的东西。