@@ -55,6 +55,7 @@ WebServer::WebServer(IPAddress addr, int port)
5555, _currentHeaders(nullptr )
5656, _contentLength(0 )
5757, _chunked(false )
58+ , _corsEnabled(false )
5859{
5960}
6061
@@ -75,6 +76,7 @@ WebServer::WebServer(int port)
7576, _currentHeaders(nullptr )
7677, _contentLength(0 )
7778, _chunked(false )
79+ , _corsEnabled(false )
7880{
7981}
8082
@@ -104,7 +106,7 @@ void WebServer::begin(uint16_t port) {
104106
105107String WebServer::_extractParam (String& authReq,const String& param,const char delimit){
106108 int _begin = authReq.indexOf (param);
107- if (_begin == -1 )
109+ if (_begin == -1 )
108110 return " " ;
109111 return authReq.substring (_begin+param.length (),authReq.indexOf (delimit,_begin+param.length ()));
110112}
@@ -366,6 +368,14 @@ void WebServer::setContentLength(const size_t contentLength) {
366368 _contentLength = contentLength;
367369}
368370
371+ void WebServer::enableCORS (boolean value) {
372+ _corsEnabled = value;
373+ }
374+
375+ void WebServer::enableCrossOrigin (boolean value) {
376+ enableCORS (value);
377+ }
378+
369379void WebServer::_prepareHeader (String& response, int code, const char * content_type, size_t contentLength) {
370380 response = String (F (" HTTP/1." )) + String (_currentVersion) + ' ' ;
371381 response += String (code);
@@ -388,6 +398,9 @@ void WebServer::_prepareHeader(String& response, int code, const char* content_t
388398 sendHeader (String (F (" Accept-Ranges" )),String (F (" none" )));
389399 sendHeader (String (F (" Transfer-Encoding" )),String (F (" chunked" )));
390400 }
401+ if (_corsEnabled) {
402+ sendHeader (String (FPSTR (" Access-Control-Allow-Origin" )), String (" *" ));
403+ }
391404 sendHeader (String (F (" Connection" )), String (F (" close" )));
392405
393406 response += _responseHeaders;
@@ -494,7 +507,7 @@ void WebServer::_streamFileCore(const size_t fileSize, const String & fileName,
494507 send (200 , contentType, " " );
495508}
496509
497- String WebServer::pathArg (unsigned int i) {
510+ String WebServer::pathArg (unsigned int i) {
498511 if (_currentHandler != nullptr )
499512 return _currentHandler->pathArg (i);
500513 return " " ;
0 commit comments