@@ -44,14 +44,36 @@ void private_CWebServer_execute_request(CwebServer *self,int socket,const char *
4444 }
4545
4646
47+ if (self -> allow_cors )
48+ {
49+ if (strcmp (request -> method ,"OPTIONS" ) == 0 ) {
50+
51+
52+ response = newCwebHttpResponse ();
53+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Origin" ,"*" );
54+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Methods" ,"*" );
55+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Headers" ,"*" );
56+ CwebHttpResponse_set_content (response ,"OK" ,2 );
57+ response -> status_code = 200 ;
58+
59+ cweb_print ("CORS preflight request handled\n" );
60+ }
61+ }
62+
63+
64+
65+
4766 if (!response ){
4867 //lambda que o usuario passa
4968 response = self -> request_handler (request );
5069 }
5170
5271 if (response && self -> allow_cors ){
53- private_cweb_generate_cors_response (response );
54- }
72+ // Adiciona os cabeçalhos CORS à resposta
73+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Origin" ,"*" );
74+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Methods" ,"*" );
75+ CwebHttpResponse_add_header (response ,"Access-Control-Allow-Headers" ,"*" );
76+ }
5577 cweb_print ("executed client lambda\n" );
5678
5779
0 commit comments