bien, tengo un archivo JavaScript con las siguientes funciones:Problemas ruta relativa en Javascript Ajax llamar
function AskReason() {
var answer = prompt("Please enter a reason for this action:", "");
if (answer != null)
DoReason(answer);
}
function createXMLHttpRequest() {
try {
return new XMLHttpRequest();
}
catch (e)
{ alert('XMLHttpRequest not working'); }
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ alert('Msxml2.XMLHTT not working'); }
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{ alert('Microsoft.XMLHTTP not working'); }
alert("XMLHttpRequest not supported");
return null;
}
function DoReason(reason) {
var xmlHttpReq = createXMLHttpRequest();
var url = "/Shared/AskReason.ashx?REASON=" + reason;
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null);
}
Esta línea:
var url = "/Shared/AskReason.ashx?REASON=" + reason;
es lo que está causando el problema.
En VS 2010 depuración de la aplicación: esta llamada funciona para mi manejador de ashx.
Cuando mover el proyecto a un directorio virtual - ejemplo http://localhost/myapp
este código se romperá y tengo que cambiar el javascript para esto:
var url = "http://localhost/myapp/Shared/AskReason.ashx?REASON=" + reason;
¿Alguna idea sobre cómo puedo solucionar esto para trabajar en ambos entornos o simplemente aceptar el cambio manual cuando implemento aplicaciones en los servidores?
Gracias, Mike
No es una solución, buscaré más en un minuto, pero es una muy mala idea rodar tu propio método AJAX [por razones de seguridad entre otros] - mira una biblioteca como prototipo o jQuery. O bien, dado que está utilizando .NET, use las bibliotecas integradas (que son jQuery efectivamente) – iivel