Cross-Origin Resource Sharing (CORS)
Mangoo I/O provides built-in support for Cross-Origin Resource Sharing (CORS) on the backend. Before using CORS, you must enable it in the config.yaml file:
cors:
  enable: true
Configuring CORS
Once enabled, you can define specific CORS headers in the config.yaml file to fine-tune access control. Below is an example configuration:
cors:
  enable: true
  alloworigin: ^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$
  urlpattern: ^http(s)?://([^/]+)(:([^/]+))?(/([^/])+)?/api(/.*)?$
  headers:
    allowcredentials: true
    allowheaders: Content-Range,ETag
    allowmethods: GET,POST,PATCH
    exposeheaders: Authorization,Content-Type
    maxage: 86400
Explanation of Configuration:
alloworigin: Defines allowed origins using a regex pattern.urlpattern: Specifies which URLs should be matched for CORS rules.headers:allowcredentials: Enables credentials such as cookies or authorization headers.allowheaders: Lists HTTP headers allowed in requests.allowmethods: Defines HTTP methods permitted for cross-origin requests.exposeheaders: Specifies response headers that can be exposed to the client.maxage: Sets the maximum age (in seconds) for caching preflight requests.
For more details, refer to the CORS specification.