2016-04-04 13 views
0

Jetzt weiß ich, es gibt ein paar Fragen mit dem gleichen Problem, aber ich kann keine Lösung finden, bedenkt, dass ich ziemlich neu in Javascript und/oder IIS bin.Javascript funktioniert nicht auf IIS

So habe ich einige Java-Skript in einer MVC-Anwendung, die, wenn lokal über das Visual Studio IIS Express ausgeführt wird, ein Leckerbissen ohne Probleme funktioniert. Ich habe auch eine IIS-Site, die ich mit genau dem gleichen Code veröffentlicht habe. Alles funktioniert gut außer dem Java-Skript. Ich schließe mein Skript in einer Razor Ansicht wie so:

<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")" type="text/javascript"></script> 

Und das folgende Javascript ist, was ich zu laufen versuchen.

<script> 
function executeQuery() { 
    var url = "/Application/CheckMobileResponse"; 
    debugger; 


    $.get(url, { applicationId: @Model.ApplicationId, userId : @Model.UserId }, function(response) { 
     debugger; 
     //doing some stuff 

    }); 
    setTimeout(executeQuery, 3000); 
} 

$(document).ready(function() { 
    setTimeout(executeQuery, 3000); 
}); 

Grundsätzlich ich alle 3 Sekunden eine Aktion nenne und in Abhängigkeit von der Antwort, die ich window.location.href bin mit zu einer neuen Sicht zu umleiten.

Ich bin ganz verwirrt, weil im Konsolenfenster auf Google Chrome Ich bin ein 404 Server-Antwort Fehler beim Abruf wie folgt:

fehlgeschlagen Ressource laden: der Server reagiert mit einem Status von 404 (nicht gefunden) jquery-1.10.2.js: 8720

GET http://localhost/Application/CheckMobileResponse?applicationId=1&userId=5 404 (nicht gefunden)

mir dieses wie es aussieht Flosse ding die Jquery-Datei, so kann nicht ein Fall von nicht in der Lage sein, die Javascript-Datei zu laden. Aber es ist stattdessen scheitern, weil es meine Aktion auf der GET-Anfrage nicht finden kann (was ist seltsam, das funktioniert perfekt auf Visual Studio IIS express?)

Ich bin wirklich fest und jede Hilfe wäre sehr geschätzt, danke. .

+0

Was ist die Basis-URL Ihrer Website? – Shyju

+0

localhost/AppDashboard? – jjharrison

+0

Höchstwahrscheinlich handelt es sich um ein Sicherheitsproblem. Ihre Datei web.config erlaubt möglicherweise nicht den Abruf von '.js' Dateierweiterungsinhalten aus dem Ordner' scripts'. Alternativ überprüfen Sie Ihren IIS-Ordner, in dem Sie Ihr Projekt veröffentlicht haben, und stellen Sie sicher, dass das Skript tatsächlich auf der Festplatte vorhanden ist. – Igor

Antwort

2

404 Fehler bedeutet, die URL, auf die Sie zugreifen möchten, existiert nicht/nicht gefunden!

Von Ihrem Kommentar ist der Basisname Ihrer Website localhost/AppDashboard. Aber wenn Sie Ihren Code ausführen, versucht es einen Anruf an http://localhost/Application/CheckMobileResponse. Es fehlt die AppDashboard! Teil in der URL.

Sie sollten den Pfad zu Ihrer Aktionsmethode nicht so hart codieren. Versuchen Sie immer, die Helpermethode Url.Action zu verwenden, um die korrekte URL für die Aktionsmethoden zu generieren. Auf diese Weise wird Ihr Code funktioniert unabhängig von (wird um die richtige URL (s) erzeugen), welche Seite/Pfad Benutzer ist derzeit in.

var url = "@Url.Action("CheckMobileResponse","Application")"; 

Wenn die Seite rendert, Rasiermesser die Url.Action Methode ausgeführt wird und erzeugt die url. Wenn Sie also den obigen Code in eine Rasiereransicht einfügen, wird es funktionieren. Wenn sich Ihr js-Code jedoch in einer externen js-Datei befindet, befolgen Sie die unter this post erläuterte Lösung.

+1

Absoluter Lebensretter, danke ... Das macht mich dumm, weil ich viel gelesen habe, dass Url-Helfer ein Muss sind, um solche Probleme zu vermeiden. Danke nochmal – jjharrison

Verwandte Themen