我正在尝试为表单提交处理JSONP请求服务器端,即
var myJSONP = new Request.JSONP({
url: 'http://mysite.../handlers/FormHandler.ashx',
callbackKey: 'jsoncallback',
data: {
partTag: 'mtvo',
iod: 'hlPrice',
viewType: 'json',
results: '100',
query: 'ipod'
},
onRequest: function(url){
// etc
},
onComplete: function(data){
// etc
}
}).send();
public class FormHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string json = ??
JObject j = JObject.Parse(json);
context.Response.ContentType = "text/json";
context.Response.Write("Hello World");
}
我不确定如何在ashx中反序列化。我使用Json.Net,但如何从上下文中获取 我是否必须使用context.Request单独检索值,还是可以直接从上下文中解码?
感谢
答案 0 :(得分:0)
我不确定您使用的是哪个JSONP,但使用MooTools Request.JSON
,数据会在context.Request.Form
中传递:
?context.Request.Form.ToString()
"partTag=mtvo&iod=hlPrice&viewType=json&results=100&query=ipod"
因此,您可以访问代码中的每个表单元素:
?context.Request.Form["partTag"]
"mtvo"
基于此,我相信您必须使用表单元素自己组装对象。
答案 1 :(得分:0)
要回答您的问题,是的,您需要使用Context.Request从客户端读取数据。
顺便说一句。如果您可以使用RESTful Web服务而不是实现自己的http处理程序,那么JSON序列化和反序列化的RESTful Web服务将由WCF框架处理。