Problèmes relatifs au chemin relatif à l'appel Javascript Ajax

Bon, j'ai un fichier JavaScript avec les fonctions suivantes:

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);
}

Cette ligne:

    var url = "/Shared/AskReason.ashx?REASON=" + reason;

Est ce qui est à l'origine du problème.

Dans VS 2010 débogage de l'application du présent appel, les travaux de mon ashx gestionnaire.

Quand je bouge le projet d'un répertoire virtuel - exemple http://localhost/myapp

ce code va casser et j'ai du changer le javascript:

var url = "http://localhost/myapp/Shared/AskReason.ashx?REASON=" + reason;

Des idées sur comment je peux résoudre ce problème à travailler dans les deux environnements ou simplement d'accepter la modification manuelle lorsque je déployer des applications pour les serveurs?

Grâce,
Mike

source d'informationauteur MDV2000