ventana - Llamando a un Método Web usando jQueryAjax "GET"
pasar parametros a una ventana modal jquery (3)
Otras formas: Puedes agregarlo en el archivo de configuración
<system.web>
...
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
...
</system.web>
Tengo una solicitud ajax que funciona bien usando "POST" pero cuando se usa "GET" me da el siguiente error,
{"Message":"An attempt was made to call the method /u0027GetSomething/u0027
using a GET request, which is not allowed.","StackTrace":" at
System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData
methodData, HttpContext context)/r/n at
System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,
WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
Así que aquí está mi código, en el lado del cliente,
function test() {
$.ajax({
url: "Default4.aspx/GetSomething",
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (res) { debugger; alert(res.d); },
error: function (res) { debugger; alert("error"); }
});
}
en el lado del servidor,
[WebMethod]
public static string GetSomething()
{
return "got something";
}
¿Alguna razón por la que estoy recibiendo un error cuando se utiliza "GET"?
Si desea invocarlo usando GET, necesita agregar:
[WebMethod]
[ScriptMethod(UseHttpGet=true)]
....
debe agregar el siguiente código antes de la etiqueta en el archivo .config Web.
<location path="webservice.asmx">
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</location>