Как читать JSONP в Ashx - PullRequest
       7

Как читать JSONP в Ashx

0 голосов
/ 15 января 2012

Я пытаюсь обработать запрос 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 для получения значений по отдельности или я могу декодировать напрямую из контекста?

спасибо

Ответы [ 2 ]

0 голосов
/ 15 января 2012

Чтобы ответить на ваш вопрос, да, вам нужно использовать Context.Request для чтения данных со стороны вашего клиента.

КСТАТИ. если вы сможете использовать веб-сервис RESTful вместо реализации собственного обработчика http, это будет намного проще, веб-сервис RESTful, который сериализует и десериализует JSON, обрабатывается инфраструктурой WCF.

0 голосов
/ 15 января 2012

Я не уверен, какой 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"

Исходя из этого, я считаю, что вам придется собирать объект самостоятельно, используя элементы формы.

...