Pregunta

Estoy haciendo algo estúpido, supongo. Juro que lo he hecho antes sin problemas, pero ahora no puedo hacer que funcione. Tengo un controlador HTTP escrito en ASP.NET que quiero invocar a través de AJAX (usando jQuery). En mi web.config, registro el controlador de esta manera ...

 <httpHandlers>
     <add verb="GET" path="~/getPage.axd" type="Handlers.GetPage"/>
 </httpHandlers>

El controlador está configurado para probar ahora ...

Namespace Handlers

Public Class GetPage
    Implements IHttpHandler

    Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
        With context.Response
            .Clear()
            .Write("ID: " & context.Request.QueryString("id"))
            .End()
        End With
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property
End Class
End Namespace

Y tengo el siguiente jQuery para invocarlo ...

$.get('http://localhost:81/getPage.axd?id=0', function(data) {
  alert(data);
});

Sé que la URL utilizada para hacer la solicitud es correcta. IIS está configurado para enrutar la ruta axd al filtro ISAPI de ASP.NET. He verificado que mi controlador no está siendo invocado (cambié el controlador para imprimir el mensaje de registro y no se imprimió nada. El visor de eventos no muestra nada).

¿Alguna idea?

EDITAR: Cuando intento navegar directamente al controlador en el navegador, aparece un error 404.

¿Fue útil?

Solución

Lo tengo. Tenía mi camino equivocado en web.config

<httpHandlers>
  <add verb="GET" path="getPage.axd" type="Handlers.GetPage"/>
</httpHandlers>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top