$ .ajax llamada funciona bien en IE8 y no funciona en los navegadores Chrome y Firefox

aquí está mi código

$.ajax( { type: "GET", url: 'http://devserver:7995/stdpart/services/GetAllPartsWithFilter', dataType: 'json', data: jsonPartsData, success: fnGetPartsData, error: PartsLoadError }); 

Este código funciona bien en IE8, pero falló en los navegadores Firefox y Chrome. Cuando inspecciono el objeto XHR, digo que el código de código de estado es 0. He verificado todas las demás preguntas, ninguna de ellas me ayudó a identificar el problema.

Avíseme si estoy haciendo algo mal en este código. Si $ .ajax tiene algunos problemas de compatibilidad, sugiérale algo equivalente.

Actualización: Encontramos una solución en http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html

Está utilizando el concepto de Dynamic Scripting . Hemos hecho lo mismo en nuestra aplicación, entonces todo parece estar funcionando ahora. Sin embargo, para analizar completamente.

esto se debe a la misma política de origen . no puedes usar ajax para llamar a sitios externos. si realmente quieres usar, tienes que usar JSONP . O puede usar proxy en el servidor para esto. significa, llamar al sitio externo en el lado del servidor y hacer una llamada ajax a ese servicio web.


ACTUALIZAR:

cree webserveice en su sitio y en el webmethod ponga el siguiente código

 string proxyURL = "http://devserver:7995/stdpart/services/GetAllPartsWithFilter"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxyURL); request.Method = "GET"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode.ToString().ToLower() == "ok") { Stream content = response.GetResponseStream(); StreamReader contentReader = new StreamReader(content); return contentReader.ReadToEnd(); } return string.Empty; 

luego acceda al servicio local utilizando su código.

para más información, consulte este enlace

Otra solución sería usar la extensión jQuery ajaxTransport que usa XDomainRequest para IE8 +.

Creo que hay algo mal con tu código.

Por favor, consulte las llamadas Pure JavaScript Ajax

Diferentes bibliotecas implementan API Ajax de manera diferente. Entonces, en su caso debe ser un problema con la versión de jquery que está usando.

Pruebe la llamada Ajax de JavaScript puro y vea si funciona en todos los navegadores. Si lo hace, entonces hay un problema con jquery en el que no quieres pasar tiempo. Si no, entonces te estás perdiendo algo.