Skip to content

Response headers not being set ! #860

@Axnjr

Description

@Axnjr

I am working on a reverse-proxy server, I want to set the headers that i get after fetching the original server but it does not works. I receive 9 headers from original server but only 4 are added to current headers.

CROW_CATCHALL_ROUTE(Server)([](const crow::request& req, crow::response& res) {
	string ip = get_server_ip(REQUEST_COUNT, IP_POOL);
	auto op = fetch_response_from_ip(ip, req.raw_url, PORT);
	
	if (op) {
		res.code = op->status;
		res.body = op->body;
		if (req.raw_url != "/") {
			for (const auto& header : op->headers) {
				//std::cout << "Header: " << header.first << ": " << header.second << std::endl;
				res.set_header(header.first, header.second);
			}
		}
		// All headers set in the response are being logged correctly but they are not present when checked in the networks tab in dev tools 
		// and file contents are missing. I recive 9 headers from original server but only 4 are added to current headers 😢
		std::cout << "Headers set in response:" << std::endl;
		for (const auto& header : res.headers) {
			std::cout << header.first << ": " << header.second << std::endl;
		}
	}
	else {
		res.code = 502; // Bad Gateway
		res.write("Failed to forward request: Unexpected Error Occurred !");
	}
	res.set_header("BODY", op->body);
	cout << endl << "BODY: === " << endl << op->body << endl;
	res.end();
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingquestionIssue can be closed by providing information

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions