2017-05-31 2 views
1

Entschuldigung, wenn diese Frage ein bisschen vage ist, aber ich habe keine Idee, wie man es spezifischer macht. Ich bin ein Anfänger, wenn es um Javascript geht. Ich habe eine Webseite, die eine Reihe von Ajax-Aufrufen an den Server sendet, um PHP-Skripte aufzurufen, die einige SQL-Anweisungen gegen eine MySQL-Datenbank ausführen. Alles funktionierte gut, und plötzlich fing ich an, bei einem meiner Ajax-Anrufe einen internen Serverfehler 500 zu bekommen. Der Ajax-Ruf wird in eine Funktion gestellt, er arbeitet die meiste Zeit. Nur wenn ich die Funktion eine bestimmte SQL-Abfrage übergeben, gibt es den Fehler. Ich habe die Abfrage in meiner Datenbank manuell getestet und es funktioniert so, es ist kein Problem mit der Abfrage, die ich übergebe. Die seltsame Sache ist, da der Fehler begonnen hat, hin und wieder es funktioniert, aber die meiste Zeit es funktioniert nicht, scheint der Fehler etwas zufällig. Ich weiß, dass es mit begrenzten Informationen unmöglich sein kann, eine genaue Antwort zu geben, aber hat jemand schon einmal so etwas erlebt? ODER hat irgendjemand Hinweise darauf, wie ich dem auf den Grund gehen kann. Ich habe alles versucht. Ich werde die Funktion einfügen, die den Fehler verursacht (nicht sicher, ob das überhaupt hilft). Der Fehler kommt auf dem "xmlhttp.send();" Linie.Javascript php interner Serverfehler 500 zufällig

function phpRequest2(prov, phpsc, funct, bolL) { 

    <!-- document.getElementById("demo").innerHTML = qry; --> 

    var xmlhttp; 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    document.getElementById("demo").innerHTML = prov; 

    xmlhttp.open("GET", phpsc + ".php?qry=" + prov, true); 
    xmlhttp.send(); 

    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     var arrLocs = JSON.parse(xmlhttp.responseText); 
     funct(arrLocs, bolL); 
    } 

    } 

} 
+3

Der 500 Fehler ist nicht auf den AJAX-Aufruf selbst, es ist auf der PHP - wahrscheinlich, weil es etwas empfängt, das es nicht von der AJAX-Aufruf erwartet. Die Fehlerprotokolle des Webservers zeigen mehr darüber, was das eigentliche Problem ist. –

+1

500 bedeutet, dass ein serverseitiger Fehler aufgetreten ist. Überprüfen Sie Ihre PHP-Protokolle, Web-Server-Protokolle, PHP-Fehler melden, debuggen Sie Ihre serverseitigen Code, etc. Grundsätzlich müssen Sie die "echte" Fehlermeldung finden, 500 ist nur die Art und Weise des Servers zu sagen, dass etwas schief gelaufen ist . – David

+0

Könnten Sie mir bitte sagen, wie ich am besten meinen serverseitigen Code debuggen oder die PHP-Fehlerberichterstattung aktivieren kann? Sorry für die grundlegende Frage, wie ich sagte, ich bin ein Anfänger .... – Jon

Antwort

1

Sie beste Wette auf den Grund herauszufinden, wenn Sie den Fehler 500 erhalten, ist der php.ini-Datei zu bearbeiten und ändern Sie die folgenden Parameter

display_errors = Off 
display_startup_errors = Off 

zu

display_errors = On 
display_startup_errors = On 

Hoffentlich das sollte Ihnen genaue Details darüber geben, was Ihr Fehler ist und Ihnen dadurch helfen, es zu lösen.

Verwandte Themen