Chcę postawić API napisane w Pythonie przy użyciu biblioteki Flask na serwerze. API domyślnie działa na porcie 5000, do tego API chcę napisać front-end. Domyślnie nie wiem, czy API powinno zwracać stronę HTML, dlatego myślę nad postawieniem nginx na tym serwerze, który pracuje na porcie 80, żeby po zapytaniu na IP serwera został zwracany HTML front-end, i wewnątrz tego był kod JavaScript, który wysyła zapytania pod API.
Mniej więcej coś takiego.
Kod HTML który jest zwracany przez Nginx.
<!<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
let s = {"username":"Tomek","password":"test"}
$.ajax({
type: "GET",
url: "http://127.0.0.1/api/account/registration",
// The key needs to match your method's input parameter (case-sensitive).
data: s,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
</script>
</body>
</html>
W konsoli przeglądarki wyskakuje błąd.
Access to XMLHttpRequest at 'http://127.0.0.1/api/account/registration?username=Tomek&password=test' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.