Skip to content

Commit cdae5ed

Browse files
author
michael
committed
add ESP8266WebServerTemplate<ServerType>::enableCORS(bool _ec) like ESP32 arduino plateform
1 parent 448486a commit cdae5ed

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
Modified 8 May 2015 by Hristo Gochkov (proper post and file upload handling)
2121
*/
2222

23-
2423
#include <Arduino.h>
2524
#include <libb64/cencode.h>
2625
#include "WiFiServer.h"
@@ -45,7 +44,8 @@ static const char Content_Length[] PROGMEM = "Content-Length";
4544

4645
template <typename ServerType>
4746
ESP8266WebServerTemplate<ServerType>::ESP8266WebServerTemplate(IPAddress addr, int port)
48-
: _server(addr, port)
47+
: _corsEnabled(false)
48+
, _server(addr, port)
4949
, _currentMethod(HTTP_ANY)
5050
, _currentVersion(0)
5151
, _currentStatus(HC_NONE)
@@ -66,7 +66,8 @@ ESP8266WebServerTemplate<ServerType>::ESP8266WebServerTemplate(IPAddress addr, i
6666

6767
template <typename ServerType>
6868
ESP8266WebServerTemplate<ServerType>::ESP8266WebServerTemplate(int port)
69-
: _server(port)
69+
: _corsEnabled(false)
70+
, _server(port)
7071
, _currentMethod(HTTP_ANY)
7172
, _currentVersion(0)
7273
, _currentStatus(HC_NONE)
@@ -98,6 +99,10 @@ ESP8266WebServerTemplate<ServerType>::~ESP8266WebServerTemplate() {
9899
}
99100
}
100101

102+
template <typename ServerType>
103+
void ESP8266WebServerTemplate<ServerType>::enableCORS(bool _ec) {
104+
_corsEnabled = _ec;
105+
}
101106
template <typename ServerType>
102107
void ESP8266WebServerTemplate<ServerType>::begin() {
103108
close();
@@ -421,7 +426,10 @@ void ESP8266WebServerTemplate<ServerType>::_prepareHeader(String& response, int
421426
sendHeader(String(F("Accept-Ranges")),String(F("none")));
422427
sendHeader(String(F("Transfer-Encoding")),String(F("chunked")));
423428
}
424-
sendHeader(String(F("Connection")), String(F("close")));
429+
if (_corsEnabled) {
430+
sendHeader(String(F("Access-Control-Allow-Origin")), String("*"));
431+
}
432+
sendHeader(String(F("Connection")), String(F("close")));
425433

426434
response += _responseHeaders;
427435
response += "\r\n";

libraries/ESP8266WebServer/src/ESP8266WebServer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ class ESP8266WebServerTemplate
9999
void serveStatic(const char* uri, fs::FS& fs, const char* path, const char* cache_header = NULL );
100100
void onNotFound(THandlerFunction fn); //called when handler is not assigned
101101
void onFileUpload(THandlerFunction fn); //handle file uploads
102+
void enableCORS(bool _ec);
102103

103104
const String& uri() const { return _currentUri; }
104105
HTTPMethod method() const { return _currentMethod; }
@@ -249,6 +250,8 @@ class ESP8266WebServerTemplate
249250
String _sopaque;
250251
String _srealm; // Store the Auth realm between Calls
251252

253+
bool _corsEnabled;
254+
252255
};
253256

254257

0 commit comments

Comments
 (0)