Foros del Web » Programando para Internet » Javascript » Frameworks JS »

The system cannot locate the resource specified

Estas en el tema de The system cannot locate the resource specified en el foro de Frameworks JS en Foros del Web. Hola a todos: Ahora me salta este problema con AJAX: Tengo un formulario que trabaja con una validación en AJAX. El código HTML del formulario ...
  #1 (permalink)  
Antiguo 13/03/2008, 19:49
Avatar de daniloquispe  
Fecha de Ingreso: mayo-2007
Mensajes: 38
Antigüedad: 17 años, 7 meses
Puntos: 0
Desacuerdo The system cannot locate the resource specified

Hola a todos:

Ahora me salta este problema con AJAX: Tengo un formulario que trabaja con una validación en AJAX. El código HTML del formulario tiene esta forma:

Código HTML:
<form id="frmnuevo" action="" method="post" onsubmit="procesarForm(); return false">
  <input type="text" id="nombre" name="nombre" />
  <input type="text" id="email" name="email" />
  <input type="submit" id="btnaceptar" name="btnaceptar" value="Aceptar" />
</form> 
La función procesarForm() tiene esta forma:

Código:
function procesarForm()
{
    var nombre = document.getElementById('nombre').value;
    var email = document.getElementById('email').value;
    ejecutar("scripts/crear.php?nombre=" + nombre + "&email=" + email, procesarRespuesta);
}
donde la función ejecutar es la típica función que crea el objeto XmlHttpRequest y lo prepara para su uso. Su implementación es:

Código:
// Guarda la referencia al objeto XmlHttpRequest
var xmlHttp;

// Recupera el objeto  XmlHttpRequest
function createXmlHttpRequestObject()
{
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// if running Internet Explorer
	if(window.ActiveXObject)
	{
		try
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = false;
		}
	}
	// if running Mozilla or other browsers
	else
	{
		try
		{
			xmlHttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlHttp = false;
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)
		alert("¡Error al crear el objeto XMLHttpRequest!");
	else
		return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object
function ejecutar(url, callback)
{
	xmlHttp = createXmlHttpRequestObject();
	// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		// execute the quickstart.php page from the server
		xmlHttp.open("GET", url, true);
		// define the method to handle server responses
		xmlHttp.onreadystatechange = callback;
		// make the server request
		xmlHttp.send(null);
	}
	else
		// if the connection is busy, try again after one second
		setTimeout('ejecutar()', 1000);
}
Bueno, en realidad el formulario tiene bastante más campos, y por tanto la función procesarForm es bastante más grande; pero en ambos casos la estructura es la que mostré en este miniejemplo (no puedo poner el código original porque es muy grande y porque en mi trabajo no me permiten publicarlo).

En fin, a lo que iba... He probado este código en 3 navegadores:
  • Internet Explorer 7
  • Mozilla Firefox 2.0.0.12
  • Opera 9.2

En los 2 últimos el código funciona bien; pero cuando lo pruebo en Internet Explorer me salta este mensaje: The system cannot locate the resource specified

Instalé MS Script Debugger y cuando pruebo nuevamente mi código el depurador se detiene en la función ejecutar() que puse arriba, concretamente en esta línea:

Código:
function ejecutar(url, callback)
{
	xmlHttp = createXmlHttpRequestObject();
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = callback;
		xmlHttp.send(null);  // <---------------- AQUI SE DETIENE EL SCRIPT
	}
	else
		setTimeout('ejecutar()', 1000);
}
No entiendo lo que sucede, ¿alguien me lo puede explicar? ¿Cómo puedo solucionarlo?
  #2 (permalink)  
Antiguo 23/03/2008, 13:28
 
Fecha de Ingreso: junio-2006
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
De acuerdo Re: The system cannot locate the resource specified

Hola, a mi parecer el problema que tenes es porque en IE la cantidad máxima de caracteres a procesar mediante el método Get con Ajax es de 2,048, según lo publicado por microsoft. ver enlace: support.microsoft.com/kb/208427

Por lo que ya sabes cuál podría ser tu problema, ya que mencionas que pretendes enviar una gran cantidad de campos, que seguramente superan los 2,048 permitidos por IE.

Creo que la solución está en achicar la información que estas pasando vía formulario, Como ejemplo: en los selects deberías ponerles valores numéricos, o en los checkboxes reemplazar los valores false or true por 0 y 1, según esten checkeados o no.

Al mismo tiempo deberias ir pesando la cantidad de valores que estás enviando con alguna función como en PHP: ob_get_length() para no pasarte de los 2,048 en IE.

Por otro lado, IE es el peor de los navegadores en cuanto a performance comparadando con Firefox, Opera, Safari, por eso genera tantos problemas a los desarrolladores.

Eso es todo,
Saludos desde Paraguay !
Carlos Maidana T.
  #3 (permalink)  
Antiguo 23/03/2008, 22:40
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: The system cannot locate the resource specified

Usa POST en lugar de GET...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #4 (permalink)  
Antiguo 24/03/2008, 08:48
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
Re: The system cannot locate the resource specified

loading............

Creo que es mas, un error a la hora de crear el documento XmlhttpRequest, usa esto.

try{
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
var xmlhttp = false;
}
}
return (!xmlhttp && typeof XMLHttpRequest!='undefined')?
new XMLHttpRequest():xmlhttp || new function(){};

connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 24/03/2008, 08:52
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
Re: The system cannot locate the resource specified

loading............

Creo que es mas, un error a la hora de crear el documento XmlhttpRequest, usa esto.
Código PHP:
function createXmlHttpRequestObject()
{
try{
                    var 
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(
e)
                {
                    try
                    {
                        var 
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch(
e)
                    {
                        var 
xmlhttp false;
                    }
                }
                return (!
xmlhttp && typeof XMLHttpRequest!='undefined')?
                new 
XMLHttpRequest():xmlhttp || new function(){};



connection closed.
__________________

Maborak Technologies
  #6 (permalink)  
Antiguo 24/03/2008, 08:53
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
Re: The system cannot locate the resource specified

loading..........

Ya que si fuera GET el proceso SIGUE NORMAL simplemente el status es el que cambia por el error de cantidad maxima por GET. Ya que este no es el caso.. entonces solo puede ser lo otro.

connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 25/03/2008, 19:38
Avatar de felipetibata  
Fecha de Ingreso: julio-2007
Ubicación: Bogotá
Mensajes: 86
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: The system cannot locate the resource specified

bueno a mi me paso eso y lo que hice fue lo siguiente en la peticion de get le agregue una variable VARIANTE a la cadena de pagina de manera que cambiara cada vez que la llamara y no fuera la misma ya que con get la pagina se queda en la cache del explorador es algo asi con lo que pude solucionar ese problema

function p_Get(pagina,destino,mensaje,gif){
var HTTP=creaHTTP();
var variante=parseInt(Math.random()*9999999);
var pagina=pagina + '?variante='+variante;
HTTP.open("GET",pagina,true);
HTTP.onreadystatechange=function(){
if(HTTP.readyState==4){
if(HTTP.status==200){
document.getElementById(destino).innerHTML=HTTP.re sponseText;
}else{
document.getElementById(destino).innerHTML="pagina no encontrada";
}
}else{
if(gif==true){
document.getElementById(destino).innerHTML='<span> <img src="cargador.gif"/><br/>' + mensaje +'</span>';
}else{
document.getElementById(destino).innerHTML=mensaje ;
}
}
};//onreadystatechange
HTTP.send(null);
}//p_Get
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:03.