如何在ashx中阅读JSONP
本文关键字:JSONP ashx | 更新日期: 2023-09-27 18:20:23
我正在尝试处理表单提交的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,但如何从上下文中获取我必须使用上下文吗。请求单独检索值,或者我可以直接从上下文中解码吗?
感谢
我不确定您使用的是哪一个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"
基于此,我相信您将不得不使用form元素自己组装对象。
要回答您的问题,是的,您需要使用Context.Request从客户端读取数据。
顺便说一句。如果您可以使用RESTful web服务而不是实现自己的http处理程序,那么将更容易,JSON序列化和反序列化的RESTful web service由WCF框架处理。