u
This commit is contained in:
@@ -70,6 +70,12 @@ int64_t HttpRequest::get_query_int64(const std::string& key, int64_t def) const
|
||||
// HttpResponse
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static const char* CORS_HEADERS =
|
||||
"Access-Control-Allow-Origin: *\r\n"
|
||||
"Access-Control-Allow-Methods: GET, POST, OPTIONS\r\n"
|
||||
"Access-Control-Allow-Headers: Content-Type, Authorization\r\n"
|
||||
"Access-Control-Max-Age: 86400\r\n";
|
||||
|
||||
void HttpResponse::send_json(int code, const json& body) {
|
||||
if (headers_sent) return;
|
||||
status_code = code;
|
||||
@@ -80,6 +86,7 @@ void HttpResponse::send_json(int code, const json& body) {
|
||||
"Content-Type: application/json; charset=utf-8\r\n"
|
||||
"Content-Length: " + std::to_string(body_str.size()) + "\r\n"
|
||||
"Connection: keep-alive\r\n"
|
||||
+ std::string(CORS_HEADERS) +
|
||||
"\r\n"
|
||||
+ body_str;
|
||||
|
||||
@@ -95,6 +102,7 @@ void HttpResponse::send_binary(int code, const std::vector<uint8_t>& data, const
|
||||
"Content-Type: " + content_type + "\r\n"
|
||||
"Content-Length: " + std::to_string(data.size()) + "\r\n"
|
||||
"Connection: keep-alive\r\n"
|
||||
+ std::string(CORS_HEADERS) +
|
||||
"\r\n";
|
||||
|
||||
session_write_binary(session, header, data);
|
||||
@@ -108,6 +116,7 @@ void HttpResponse::send_empty(int code) {
|
||||
std::string resp = "HTTP/1.1 " + std::to_string(code) + " " + reason_phrase(code) + "\r\n"
|
||||
"Content-Length: 0\r\n"
|
||||
"Connection: keep-alive\r\n"
|
||||
+ std::string(CORS_HEADERS) +
|
||||
"\r\n";
|
||||
|
||||
session_write(session, resp);
|
||||
|
||||
@@ -18,6 +18,11 @@ void Router::dispatch(tls_session* sess, PairingStore& pairing, const json& conf
|
||||
full_url += "?" + req.query_string;
|
||||
}
|
||||
|
||||
if (req.method == "OPTIONS") {
|
||||
resp.send_empty(204);
|
||||
return;
|
||||
}
|
||||
|
||||
std::string route_key = req.method + " " + req.path;
|
||||
auto it = routes_.find(route_key);
|
||||
if (it != routes_.end()) {
|
||||
|
||||
Reference in New Issue
Block a user