Tengo el siguiente servicio web;
[WebMethod] public string HelloWorld() { return "Hello World"; }Es estándar de stock sin alteraciones a los decoradores de clase.
Tengo este método jQuery;
var webMethod = "http://localhost:54473/Service1.asmx/HelloWorld"; $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", data: "{}", dataType: "json", url: webMethod, success: function(msg){ alert(msg.d); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } });Es una acción posterior porque más adelante necesito publicar datos en ella.
Cuando ejecuto jQuery, aparece el error "Sin transporte".
Una cosa que también debo mencionar es que jQuery está almacenado en un archivo HTML simple en mi máquina y WebService también se está ejecutando en mi máquina.
No hay código detrás en la página HTML, es simplemente una página web y no un proyecto ac# ni nada.
¿Alguien puede indicarme la dirección correcta aquí?
Agrega esto: jQuery.support.cors = true;
Permite secuencias de comandos entre sitios en jQuery (introducido después de 1.4x, creo).
Estábamos usando una versión muy antigua de jQuery (1.3.2) y la cambiamos por 1.6.1. Todo funcionaba, excepto las llamadas .ajax(). Agregar la línea anterior solucionó el problema.
Si su página jQuery no se carga desde http://localhost:54473 , entonces este problema probablemente se deba a que está intentando realizar una solicitud entre dominios.
Actualización 1 Eche un vistazo a esta publicación de blog .
Actualización 2 Si este es realmente el problema (y sospecho que lo es), es posible que desee consultar JSONP como solución. Aquí hay algunos enlaces que pueden ayudarlo a comenzar:
Tuve el mismo error en una página y agregué estas líneas:
<!--[if lte IE 9]> <script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.3/jquery.xdomainrequest.min.js'></script> <![endif]-->y finalmente me funciona ;) no más errores en IE9.