Skip to content

Commit 9a0cd3e

Browse files
2 parents f6fea34 + a07aa52 commit 9a0cd3e

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

src/fdefine.cors.c

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/server/server/fdefine.request_execution.c

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,39 @@ void private_CWebServer_execute_request(CwebServer *self,int socket,const char *
4444
}
4545

4646

47+
48+
if (!response && self->allow_cors){
49+
if (strcmp(request->method,"OPTIONS") == 0) {
50+
51+
response = newCwebHttpResponse();
52+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Origin","*");
53+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Methods","*");
54+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Headers","*");
55+
CwebHttpResponse_set_content(response,"OK",2);
56+
response->status_code = 200;
57+
58+
cweb_print("CORS preflight request handled\n");
59+
}
60+
}
61+
62+
63+
64+
4765
if(!response){
4866
//lambda que o usuario passa
4967
response = self->request_handler(request);
68+
if(self->allow_cors){
69+
// Adiciona os cabeçalhos CORS à resposta
70+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Origin","*");
71+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Methods","*");
72+
CwebHttpResponse_add_header(response,"Access-Control-Allow-Headers","*");
73+
}
5074
}
5175

52-
if(response && self->allow_cors){
53-
private_cweb_generate_cors_response(response);
54-
}
55-
cweb_print("executed client lambda\n");
5676

5777

78+
79+
5880
//means that the main function respond nothing
5981
if (response == NULL){
6082

0 commit comments

Comments
 (0)