Ajax - 500 Interner Serverfehler
Ich versuche zu lernen AJAX für dieses Projekt bei der Arbeit. Ich habe eine Seite lädt, die Medikamente, die ein patient einnimmt.
Ich nenne diese AJAX-Funktion rekursiv, so dass es wird fügen Sie eine neue Tabelle mit einem einzelnen Medikament und 7 Tage Geschichte. Ich bin Ausgaben, die den auszuführenden code in FF und IE. Funktioniert einwandfrei in chrome. Ich hatte Warnhinweisen in der xmlhttp.status und dies ist, was ich habe:
xmlhttp.status==500 (internal server
Fehler).
Kommentierte ich all meine " Rekursion, so ist es eingeengt zu diesem tid-bit-code. ( x merkt sich die Anzahl der Medikamente, damit ich weiß, Wann man aufhören)
function LoadMeds()
if ( x == MaxMedCount )
{
document.getElementById("the_day").value = parseInt(document.getElementById("the_day").value)+7;
}
if ( x == (MaxMedCount - 1) )
{
document.getElementById("x").value = x + 1;
show();
}
else
{
if (window.XMLHttpRequest)
{//code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
try
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var div = document.createElement('div');
div.innerHTML= xmlhttp.responseText;
document.getElementById('MedTable').appendChild(div);
document.getElementById("the_med_").value = the_med_;
}
}
catch(e)
{
alert("Error");
}
}
xmlhttp.open("GET","URL with variables passed",true);
xmlhttp.send();
document.getElementById("x").value = x + 1;
}
wenn mehr code benötigt wird, lasst es mich einfach wissen.
InformationsquelleAutor der Frage NickF | 2011-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
500 (internal server error)
bedeutet, dass etwas schiefgelaufen auf dem server der Seite. Es könnten mehrere Dinge sein, aber ich würde zunächst überprüfen, dass die URL und die Parameter korrekt sind. Auch, stellen Sie sicher, dass was auch immer die Anforderung verarbeitet wird erwarten, dass die Anfrage als GET und kein POST.Einzige sinnvolle Weg, um zu lernen mehr über, was Los ist, verwenden Sie ein tool wie Fiddler die lassen Sie sehen alle HTTP-Anfragen und Antworten, so dass Sie genau sehen können, was Sie senden und der server antwortet mit.
Wenn Sie nicht einen zwingenden Grund, um zu schreiben Ihre eigenen Ajax-code, würden Sie weit besser mit einer Bibliothek, mit der Ajax-Interaktionen für Sie. jQuery ist eine option.
InformationsquelleAutor der Antwort Jonathon Faust
Ich glaube deine return-string-Daten sehr lange. also das JSON-format wurde beschädigt.
Ändern Sie die maximale Größe für JSON-Daten auf diese Weise :
Öffnen Sie die Web.Config-Datei und fügen Sie die folgenden Zeilen in den Abschnitt "Konfiguration"
InformationsquelleAutor der Antwort Emad Armoun
Diese möglicherweise ein falscher parameter in der SOAP-Aufruf; Blick auf das format der parameter(s) in der 'data:' json Abschnitt - das ist die Nutzlast, den Sie übergeben, über - parameter und-Daten gewickelt im JSON-format.
Google Chrome Debuggen-Symbolleiste hat einige gute Werkzeuge, um zu überprüfen, Parameter und schauen Sie auf Fehlermeldungen - zum Beispiel, beginnen Sie mit der Registerkarte "Console" und klicken Sie auf die URL, welche Fehler oder klicken Sie auf die Registerkarte Netzwerk. Sie möchten anzeigen die Kopfzeilen der Nachricht, Antwort, etc...
InformationsquelleAutor der Antwort user14114
Entfernen Sie die kommentarmarkierung der folgenden Zeile :
[System.Web.Script.Services.ScriptService]
Service gestartet, funktioniert Prima.
InformationsquelleAutor der Antwort Nadir Siddiqui
Hatte das gleiche problem, dann habe ich mich erinnert, dass aus Gründen der Sicherheit für ASP nicht aussetzen, den gesamten Fehler-oder stack-trace, wenn Sie auf Ihre Website/Dienst aus der Ferne zu, wie die nicht in der Lage zu testen, ein
.asmx
web-Dienst aus der Ferne, so dass ich umgehend in die Server und überwacht meine dev-tools, und erst dann habe ich die berüchtigte Meldung "Konnte nicht geladen, Datei oder assembly'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
oder einer von Ihr dep...".Melden Sie sich also auf den server und Debuggen von dort.
InformationsquelleAutor der Antwort user2351772
Ich korrigiert einen Fehler wie dieser Wechsel der Orte, Routen in routes.php zum Beispiel hatte ich so etwas wie dieses:
und dann habe ich es wie folgt:
InformationsquelleAutor der Antwort Jennifervdz
Ich hatte den gleichen Fehler. Es stellt sich heraus, dass die Ursache war, dass die back-end-Methode wurde erwartet unterschiedliche json-Daten. In meinem Ajax-call hatte ich so etwas wie dieses:
Nun in meinem WebMethod, in meinem C# - backend-code, den ich erklärt hatte, dass meine Endpunkt wie diese:
Wo AjaxSettings erklärt wurde:
Das problem war dann, dass die Zuordnung zwischen meine ajax-Aufrufs, und meine back-end-Endpunkt war nicht das gleiche. Sobald ich änderte meine ajax-Aufruf der folgenden, es haben alle gut funktioniert!
Musste ich die Daten variabel in der Ajax-Aufruf, um die Signatur der Methode genau.
InformationsquelleAutor der Antwort Sotiris Zegiannis
Muss man
behavior: JsonRequestBehavior.AllowGet
im PostJson Return
in C#InformationsquelleAutor der Antwort Muhammad Yasir