jquery log Apache 403 Fehler(Forbidden) auf Windows



linux 403 forbidden access is denied (1)

Ich verwende Apache und sende eine Ajax-Anfrage mit jQuery von index.html . Die Datei get_data.pl ist eine Datei auf cgi-bin . Ich habe 403 Forbidden error . Jeder würde mir helfen und danke im Voraus.

$.ajax({
    async : true,
    type: "GET",
    url: "get_data.pl"      
}).done(function(msg){
    alert("Data Saved: " + msg);
}).fail(function(xmlHttpRequest,statusText,errorThrown) {   
    console.log(JSON.stringify(xmlHttpRequest));
    console.log(statusText);
    console.log(errorThrown);       
});

Was ich von der Konsole bekommen habe:

{"readyState":4,"responseText":"<!DOCTYPE ...<title>403 Forbidden</title>...
<p>You don't have permission to access /get_data.pl\non this server.</p>\n</body>
</html>\n","status":403,"statusText":"Forbidden"} 

Es ist Windows 7. Ich verwende Chrome mit Administratorkonto.

Nach einiger Zeit habe ich noch keine Wege für das Thema gefunden. Ich denke, ich sollte mehr Details für Experten zur Verfügung stellen, um mein Problem zu reproduzieren. Über meine httpd.conf änderte ich die Orte basierend auf dem Original: Zeile 193 in:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Ich lösche die 2 Zeilen:

Order allow,deny
Allow from all

Linie 343:

<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin">
      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
</Directory>

Ich habe diesen Abschnitt geändert in:

<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
    Options  +ExecCGI
    AddHandler cgi-script .cgi .pl
    Allow from all
</Directory>

Ich habe die .pl-Datei im cgi-bin-Ordner abgelegt, die index.html im htdocs-Ordner. Ich habe versucht Windows7, Win2k3 64bit und Win2k3 32bit. Alle haben verbotene Fehler. Ich habe Apaches Standard printenv.pl auch verwendet.


Ich denke, Sie vermissen Berechtigungen zum Ausführen von CGI Zeug und Sie können lesen, wie Sie es in der Apache-Dokumentation aktivieren

Kurz gesagt, etwas in Ihrer Hauptkonfigurationsdatei ( https.conf ):

<Directory /path/to/cgi-bin/>
    Options +ExecCGI
    AddHandler cgi-script .pl
</Directory>

Hoffe es hilft dir weiter.

BEARBEITEN
Das Problem war, dass der Pfad für den Zugriff auf das Skript falsch war. Protokolldatei zeigte Options ExecCGI is off in this directory: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/get_data.pl" während die Datei get_data.pl nicht in htdocs , sondern in cgi-bin Die Änderung der url: "get_data.pl" im url: "get_data.pl" Aufruf zur Lokalisierung des Skripts in cgi-bin löste das Problem.





apache