Ich möchte gerade eine REST-API für mein Heimnetzwerk einrichten um über z.B. einen button einen CMD befehl auf dem Server PC auszuführen.
Mein Pythonscript für die API:
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/execute-command', methods=['POST'])
def execute_command():
# Hier wird der Code zum Ausführen des Befehls eingefügt
result = "Befehl wurde ausgeführt."
return jsonify({"response": result})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Mein HTML Script<!DOCTYPE html>
<html>
<head>
<title>API Test</title>
</head>
<body>
<button id="executeBtn">Befehl ausführen</button>
<script>
document.getElementById('executeBtn').addEventListener('click', function() {
fetch('http://localhost:5000/execute-command', { // Verwende absolute URL
method: 'POST',
})
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Fehler:', error);
});
});
</script>
</body>
</html>
Ich bekomme als Fehler von Firefox in der Konsole:
Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://localhost:5000/execute-command. (Grund: CORS-Anfrage schlug fehl). Statuscode: (null).
Fehler: TypeError: NetworkError when attempting to fetch resource
Entschuldigung wenn es offensichtlich ist, bin da noch sehr frisch und habe keine Lösung gefunden.