allow CORS for api requests

This commit is contained in:
Jean Jacques Avril 2022-03-08 20:33:02 +01:00
parent 2719314506
commit 8f2444caeb
2 changed files with 25 additions and 10 deletions

View File

@ -45,24 +45,31 @@ bool WebConsole::isInterceptingRfid()
{ {
return catch_rfid; return catch_rfid;
} }
void WebConsole::_sendCORS()
{
_server->sendHeader("Access-Control-Allow-Origin", "*");
_server->sendHeader("Access-Control-Max-Age", "10000");
_server->sendHeader("Access-Control-Allow-Methods", "PUT,POST,GET,OPTIONS");
_server->sendHeader("Access-Control-Allow-Headers", "*");
}
void WebConsole::_handleUnknown() void WebConsole::_handleUnknown()
{ {
if (_server->method() == HTTP_OPTIONS) if (_server->method() == HTTP_OPTIONS)
{ {
_server->sendHeader("Access-Control-Allow-Origin", "*"); _sendCORS();
_server->sendHeader("Access-Control-Max-Age", "10000");
_server->sendHeader("Access-Control-Allow-Methods", "PUT,POST,GET,OPTIONS");
_server->sendHeader("Access-Control-Allow-Headers", "*");
_server->send(204); _server->send(204);
}else { }
File src = LittleFS.open("s/index.html", "r"); else
_server->streamFile(src, "text/html"); {
src.close(); File src = LittleFS.open("s/index.html", "r");
_server->streamFile(src, "text/html");
src.close();
} }
} }
void WebConsole::_getUserDb() void WebConsole::_getUserDb()
{ {
_sendCORS();
File src = LittleFS.open("userdb.csv", "r"); File src = LittleFS.open("userdb.csv", "r");
if (src) if (src)
{ {
@ -72,6 +79,7 @@ void WebConsole::_getUserDb()
} }
void WebConsole::_deleteUser() void WebConsole::_deleteUser()
{ {
_sendCORS();
if (userdb == nullptr) if (userdb == nullptr)
{ {
_server->send(500, "text/json", "{\"error\":\"UserDb not initialized\"}"); _server->send(500, "text/json", "{\"error\":\"UserDb not initialized\"}");
@ -92,6 +100,7 @@ void WebConsole::_deleteUser()
void WebConsole::_getUser() void WebConsole::_getUser()
{ {
_sendCORS();
if (userdb == nullptr) if (userdb == nullptr)
{ {
_server->send(500, "text/json", "{\"error\":\"UserDb not initialized\"}"); _server->send(500, "text/json", "{\"error\":\"UserDb not initialized\"}");
@ -110,6 +119,7 @@ void WebConsole::_getUser()
} }
void WebConsole::_updateUser() void WebConsole::_updateUser()
{ {
_sendCORS();
userdb::User updated; userdb::User updated;
String body = _server->arg("plain"); String body = _server->arg("plain");
const int capacity = 256; const int capacity = 256;
@ -161,6 +171,7 @@ void WebConsole::_updateUser()
} }
void WebConsole::_createUser() void WebConsole::_createUser()
{ {
_sendCORS();
userdb::User created; userdb::User created;
String body = _server->arg("plain"); String body = _server->arg("plain");
const int capacity = 1024; const int capacity = 1024;
@ -195,6 +206,7 @@ void WebConsole::_createUser()
} }
void WebConsole::_dropUserDb() void WebConsole::_dropUserDb()
{ {
_sendCORS();
if (userdb->drop()) if (userdb->drop())
_server->send(500, "text/json", "{\"ok\":\"UserDb dropped.\"}"); _server->send(500, "text/json", "{\"ok\":\"UserDb dropped.\"}");
else else
@ -202,6 +214,7 @@ void WebConsole::_dropUserDb()
} }
void WebConsole::_catchRFID() void WebConsole::_catchRFID()
{ {
_sendCORS();
if (rfid == nullptr) if (rfid == nullptr)
{ {
_server->send(500, "text/json", "{\"error\":\"RFID not attached.\"}"); _server->send(500, "text/json", "{\"error\":\"RFID not attached.\"}");

View File

@ -23,6 +23,7 @@ namespace webconsole
bool isInterceptingRfid(); bool isInterceptingRfid();
private: private:
void _sendCORS();
void _handleUnknown(); void _handleUnknown();
void _getUserDb(); void _getUserDb();
void _deleteUser(); void _deleteUser();
@ -35,10 +36,11 @@ namespace webconsole
void _print_db_raw() void _print_db_raw()
{ {
File f = LittleFS.open("userdb.csv", "r"); File f = LittleFS.open("userdb.csv", "r");
while (f.available()){ while (f.available())
{
f.sendAvailable(Serial); f.sendAvailable(Serial);
} }
_server->send(200,"text/plain","printed to serial"); _server->send(200, "text/plain", "printed to serial");
f.close(); f.close();
} }
ESP8266WebServer *_server; ESP8266WebServer *_server;