@@ -55,6 +55,7 @@ WebServer::WebServer(IPAddress addr, int port)
55
55
, _currentHeaders(nullptr )
56
56
, _contentLength(0 )
57
57
, _chunked(false )
58
+ , _corsEnabled(false )
58
59
{
59
60
}
60
61
@@ -75,6 +76,7 @@ WebServer::WebServer(int port)
75
76
, _currentHeaders(nullptr )
76
77
, _contentLength(0 )
77
78
, _chunked(false )
79
+ , _corsEnabled(false )
78
80
{
79
81
}
80
82
@@ -104,7 +106,7 @@ void WebServer::begin(uint16_t port) {
104
106
105
107
String WebServer::_extractParam (String& authReq,const String& param,const char delimit){
106
108
int _begin = authReq.indexOf (param);
107
- if (_begin == -1 )
109
+ if (_begin == -1 )
108
110
return " " ;
109
111
return authReq.substring (_begin+param.length (),authReq.indexOf (delimit,_begin+param.length ()));
110
112
}
@@ -366,6 +368,14 @@ void WebServer::setContentLength(const size_t contentLength) {
366
368
_contentLength = contentLength;
367
369
}
368
370
371
+ void WebServer::enableCORS (boolean value) {
372
+ _corsEnabled = value;
373
+ }
374
+
375
+ void WebServer::enableCrossOrigin (boolean value) {
376
+ enableCORS (value);
377
+ }
378
+
369
379
void WebServer::_prepareHeader (String& response, int code, const char * content_type, size_t contentLength) {
370
380
response = String (F (" HTTP/1." )) + String (_currentVersion) + ' ' ;
371
381
response += String (code);
@@ -388,6 +398,9 @@ void WebServer::_prepareHeader(String& response, int code, const char* content_t
388
398
sendHeader (String (F (" Accept-Ranges" )),String (F (" none" )));
389
399
sendHeader (String (F (" Transfer-Encoding" )),String (F (" chunked" )));
390
400
}
401
+ if (_corsEnabled) {
402
+ sendHeader (String (FPSTR (" Access-Control-Allow-Origin" )), String (" *" ));
403
+ }
391
404
sendHeader (String (F (" Connection" )), String (F (" close" )));
392
405
393
406
response += _responseHeaders;
@@ -494,7 +507,7 @@ void WebServer::_streamFileCore(const size_t fileSize, const String & fileName,
494
507
send (200 , contentType, " " );
495
508
}
496
509
497
- String WebServer::pathArg (unsigned int i) {
510
+ String WebServer::pathArg (unsigned int i) {
498
511
if (_currentHandler != nullptr )
499
512
return _currentHandler->pathArg (i);
500
513
return " " ;
0 commit comments