2017-04-17 4 views
0

Ich betreibe eine asp.net-Website mit einem Ajax-Aufruf. In einem Unterordner kann ich den Anruf jedoch nicht ausführen.Call Ajax von jedem Ordner

Was ich zufällig haben will, ist ein Ort, um den Ajax-Aufruf zu definieren:

function LogOut() { 
    $.ajax({ 
     type: "POST", 
     url: "Services/wsvc_Security.asmx/LogOut", 
     contentType: "application/json; charset=utf-8", 
     async: true, 
     success: function (data) { console.log("done"); }, 
     error: function (request, errorType, errorMessage) { console.log('ajax error - ' + request + '\n' + errorMessage); } 
    }); 
} 

Das Problem entsteht, wenn in dem Ordner/Admin ... es ist nicht meine Dienste Ordner in der Wurzel finden. Ja, ich könnte /Services/wsvc_Security.asmx/LogOut verwenden ... außer dass ich auf dem Server zwei Anwendungspfade habe:/LiveVersion und/TestVersion. Ich möchte den Code bei der Bereitstellung in verschiedenen Umgebungen nicht ändern müssen.

Gibt es eine Möglichkeit, in Javascript zu tun, was ich in .Net tun kann? Bedeutung: ~/Dienstleistungen/wsvc_Security.asmx/LogOut

Wo ~/mir die Wurzel der Anwendung

+0

Wie wäre es, wenn Sie den tatsächlichen Pfad zu 'LogOut' im Ajax setzen anstatt zu versuchen, etwas" relative "Magie zu benutzen? – gforce301

+0

Wenn ich den tatsächlichen Pfad einstelle, dann müsste ich jedes Mal, wenn ich ihn zum Leben oder Testen aus der Entwicklung herausbringe, ALLE meine Ajax-Aufrufe ändern (ich habe mindestens 50 in verschiedenen Skripten)? Das versuche ich zu vermeiden. url: "http: //localhost/developmentfolder/Servers/wsvc_Security.asmx/LogOut" url: "http: //prodserver/application/Servers/wsvc_Security.asmx/LogOut" url: „http://testserver/application/Servers/wsvc_Security.asmx/LogOut " – jibboo

Antwort

0

Der richtige Weg bekommt, dies zu tun verschiedene Konfigurationen für Live- und Testversion zu haben wäre. Für jede der 2 könnte man eine Wurzel haben, die unterschiedlich definiert ist, d. H. In der Testkonfiguration, beispielsweise root = 'live/something' und im Test root = 'test/something'. So würden Sie die URL als
url: root + "Services/wsvc_Security.asmx/LogOut"

PS nennen. Denken Sie daran, dass die Configs für Test und Live getrennt sein sollten.

+0

dies könnte eine Option sein, da ich eine /Scripts/site.js Datei habe, die auf der Masterseite geladen wird und vor anderen Seitenskripten geladen wird. Ich hatte wirklich gehofft, dass es eine glatte Art ist, es wie ASP.NET's zu machen: ~/Option, es unabhängig vom Ordner/Unterordner relativ zum Projekt zu machen – jibboo