add optional responce code to AsyncWebServerRequest::redirect() method

Allows to specify differents redirect codes to use, i.e. 301/302, 307/308
This commit is contained in:
Emil Muratov
2024-09-30 12:07:45 +09:00
parent b054150164
commit cf9ae09db8
2 changed files with 7 additions and 6 deletions

View File

@@ -288,12 +288,13 @@ class AsyncWebServerRequest {
} }
/** /**
* @brief issue 302 redirect response * @brief issue HTTP redirect responce with Location header
* *
* @param url * @param url - url to redirect to
* @param code - responce code, default is 302 : temporary redirect
*/ */
void redirect(const char* url); void redirect(const char* url, int code = 302);
void redirect(const String& url) { return redirect(url.c_str()); }; void redirect(const String& url, int code = 302) { return redirect(url.c_str(), code); };
void send(AsyncWebServerResponse* response); void send(AsyncWebServerResponse* response);
AsyncWebServerResponse* getResponse() const { return _response; } AsyncWebServerResponse* getResponse() const { return _response; }

View File

@@ -766,8 +766,8 @@ void AsyncWebServerRequest::send(AsyncWebServerResponse* response) {
send(500); send(500);
} }
void AsyncWebServerRequest::redirect(const char* url) { void AsyncWebServerRequest::redirect(const char* url, int code) {
AsyncWebServerResponse* response = beginResponse(302); AsyncWebServerResponse* response = beginResponse(code);
response->addHeader(T_LOCATION, url); response->addHeader(T_LOCATION, url);
send(response); send(response);
} }