Neulich schrieb ich Eine Geschichte über den Aufbau eines OSS-WebDB-Systems namens Exment mit einer Kombination aus Lightsail + Docker.
Danach schrieb ich auch Artikel, der Exment- und MF-Cloud-Rechnung mit API kombiniert.
Sie haben also vergessen, in beiden Artikeln etwas Wichtiges zu schreiben.
Es funktioniert mit Postman, aber nicht mit Node.js. Warum ... Ja, CORS ...
Hier ist also Docker-compose, das Extension betreibt, aber der Webserver läuft auf nginx.
Deshalb habe ich die CORS-Einstellungen für Nginx hinzugefügt.
nginx.conf
server {
listen 8080;
server_name _;
root /var/www/exment/public;
index index.php index.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE';
add_header Access-Control-Allow-Headers 'Origin, Authorization, Accept, Content-Type';
add_header Access-Control-Max-Age 3600;
add_header Content-Type 'text/plain charset=UTF-8';
add_header Content-Length 0;
return 204;
}
try_files $uri /index.php?$query_string;
}
location ~ \.php$ {
add_header Access-Control-Allow-Origin '*' always;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
--Referenz: CORS-Einstellung der endgültigen Ausgabe zum Einrichten eines API-Servers
Recommended Posts