2017-10-11 3 views
0

Ich habe eine sehr einfache Webseite, die aus zwei Dateien, phpcode.php.cgi und frontpage.php.cgi enthält. Ich habe Dropdown-Listen, die dynamisch ausgefüllt werden sollten, aber ich kann nicht die Anfrage/Antwort zu arbeiten. Die ID des Dropdowns ist "Start". Ich habe eine Anfrage Ajax in der Frontpage-Datei:Ajax, JQuery, GET Anfrage mit PHP Fehler

$(document).ready(function() { 
     $("#start").change(function(){ 
      alert("dropdown changed"); 
      var val = $('#start').val(); 
      $.ajax({ 
       type: "GET", 
       data: {Station_Nr : val}, 
       url: "phpcode.php.cgi", 
       success: function(data){ 
        alert(data); 
       } 
      }); 
     }); 
    }); 

und meine phpfile sieht wie folgt aus:

<?php 
if(isset($_GET['Station_Nr'])) { 
    echo "it works"; 
}; 
?> 

Es wird versucht, von url ../ phpcode.php.cgi anfordern Station_Nr = 27 Wenn ich versuche, die Seite einzugeben, erhalte ich einen Fehler von 500. Laut chrome liegt der Fehler in der Zeile, die mit $ .ajax beginnt.

Ich habe eingeschlossen:

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

Dank!

+1

Ihre Dateierweiterungen sind verwirrend - sind sie PHP-Dateien oder CGI-Dateien? Wenn ersteres, wie Sie sicher sind, dass Ihr Server eingerichtet ist, sie zu interpretieren und mit der PHP-Engine auszuführen? Um das Debuggen zu erleichtern, können Sie die Netzwerkregisterkarte der Konsole überprüfen. Es sollte den Antworttext der 500 Fehleranforderung anzeigen, der Ihnen hoffentlich eine Beschreibung des Problems geben sollte. Beachten Sie auch, dass Sie jQuery.js anscheinend zweimal eingefügt haben. Ich würde vorschlagen, "1.12.0.min.js" zu entfernen und den Verweis auf "3.2.1" nach oben zu verschieben. –

+0

Wenn Sie einen 500 Server-Fehler erhalten, sollten Sie auch etwas in Ihrem Fehlerprotokoll haben. Kannst du uns die Fehlermeldung aus der Logdatei zeigen? – Webdesigner

+0

@RoryMcCrossan Die Dateien sind CGI. Ein Problem ist, dass es der Webserver der Schule ist und daher keine Logs verfügbar sind. PHP sollte funktionieren, wenn ich diese Erweiterung habe (bisher außer der Anfrage). Der Responsetext gibt nur an, dass im Serverprotokoll weitere Informationen vorhanden sind. In Mozilla -> Netzwerk -> Ursache = xhr. In chrome: GET url ../ phpcode.php.cgi? Station_Nr = 10 500 (Interner Serverfehler) send @ jquery.min.js: 4 ajax @ jquery.min.js: 4 (anonym) @ frontpage. php.cgi: 99 Versand @ jquery.min.js: 3 q.handle @ jquery.min.js: 3 ListPicker._HandleMouseUp @ etwa: leer: 588 – Louise

Antwort

-1

Wenn Sie einen Fehler 500 erhalten, weil etwas nicht im Server falsch ist, verwenden Sie /phpcode.php.cgi in $ .ajax, um einen absoluten Pfad nur für den Fall zu verwenden.

0

Oben in der Datei befindet sich #!/Usr/bin/php5. Hier wurde \ r \ n wegen Windows hinzugefügt und die Übertragungsmethode war binär. Der Apache-Server hat mit einem Fehler geantwortet und beim Ersetzen von \ r \ n mit \ n funktioniert es.