jQuery POST. No se pueden obtener los parámetros de solicitud utilizando httphandler personalizado



1 Answers

Cambié contentType a application/x-www-form-urlencoded e hice un truco

Question

Tengo un método de publicación jQuery con datos JSON incluidos.

En mi httphandler, en el método processRequest, Request ["Operation"] es nulo y ninguno de mis datos se publica. Estoy en un entorno de SharePoint 2010.

 public void ProcessRequest(HttpContext context)
    {
        try
        {
            string operation = context.Request["Operation"]; // Returns null

Mi JavaScript es el siguiente:

function CallService(serviceData, callBack) {

$.ajax({
    type: "POST",
    url: ServiceUrl,
    data: { Operation : "activate"},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        callBack(result);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(XMLHttpRequest.responseText);
    }
});

En el depurador en VS no puedo encontrar los valores publicados cuando evalúo el HttpContext. En Firebug, el valor se publica como datos JSON válidos. ¿Alguna razón por la que no puedo obtener los parámetros?

Cualquier ayuda apreciada.




¿Por qué anulas la opción contentType en tu llamada a $.ajax() ? Si omite eso, ¿todavía ve que se envía nulo para el valor de Operation ?

Además, creo que el formato adecuado para los datos JSON sería:

{"Operation": "activate"}

Creo que la especificación JSON es específica al respecto, pero la mayoría de los marcos no son tan estrictos.




Related