[Libwebsockets] How to make a http-server which support cross-domain

Andy Green andy at warmcat.com
Mon Aug 2 14:26:58 CEST 2021

On 8/2/21 12:21 PM, Mr.zhang wrote:
> Dear:
>        Please tell me how  to make a http-server which support 
> cross-domain with libwebsocket.
> such as  "res.header('Access-Control-Allow-Origin " in other http 
> server. Thank you
> .header('Access-Control-Allow-Origin', '*')

You can associate static headers with a vhost, at vhost creation time.


Create a linked-list of pvos containing the header info like this (with 
whatever headers you want to go out from the vhost)

static const
struct lws_protocol_vhost_options pvo_hsbph[] = {{
	NULL, NULL, "referrer-policy:", "no-referrer"
}, {
	&pvo_hsbph[0], NULL, "x-frame-options:", "deny"
}, {
	&pvo_hsbph[1], NULL, "x-xss-protection:", "1; mode=block"
}, {
	&pvo_hsbph[2], NULL, "x-content-type-options:", "nosniff"
}, {
	&pvo_hsbph[3], NULL, "content-security-policy:",
	"default-src 'none'; img-src 'self' data: ; "
		"script-src 'self'; font-src 'self'; "
		"style-src 'self'; connect-src 'self' ws: wss:; "
		"frame-ancestors 'none'; base-uri 'none';"
		"form-action 'self';"

Then set the vhost info.headers to, in the example above, &pvo_hsbph[4];

That will cause that set of headers to be added to everything served on 
the vhost.


More information about the Libwebsockets mailing list