pagemachine / cors
Cross Origin Resource Sharing for TYPO3 CMS.
Installs: 3 847
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 5
Forks: 2
Open Issues: 0
Type:typo3-cms-extension
pkg:composer/pagemachine/cors
Requires
- php: ^5.6 || ^7.0
- typo3/cms-core: ^6.2 || ^7.6 || ^8.7
- typo3/cms-frontend: ^6.2 || ^7.6 || ^8.7
Requires (Dev)
- jakub-onderka/php-console-highlighter: ^0.3.2
- jakub-onderka/php-parallel-lint: ^0.9.2
- nimut/testing-framework: ^1.1
- phpunit/phpunit: ^5.7
Replaces
- cors: 2.0.6
- typo3-ter/cors: 2.0.6
README
Cross Origin Resource Sharing for TYPO3
Installation
This extension is installable from various sources:
- 
Via Composer: composer require pagemachine/cors
- 
From the TYPO3 Extension Repository 
- 
From Github 
Configuration
All configuration options can be set via TypoScript setup in config.cors or per page object in page.config.cors. The following options are available:
| Option | Type | Description | 
|---|---|---|
| allowCredentials | int/boolean | Processing of the credentialsflag | 
| allowHeaders | string | List of allowed headers (X-Foo, ...), simple headers are always allowed | 
| allowMethods | string | List of allowed methods (PUT, DELETE, ...), simple methods are always allowed | 
| allowOrigin | string | List of allowed origins | 
| allowOrigin.pattern | string | Regular expression for matching origins, make sure to escape as necessary | 
| exposeHeaders | string | List of headers exposed to clients | 
| maxAge | int | Cache lifetime of preflight requests, watch out for browser limits | 
Note that all options support stdWrap processing through their .stdWrap property.
Examples
- 
Origin wildcarding: config.cors { allowOrigin = * }
- 
Simple list of origins: config.cors { allowOrigin = http://example.org, http://example.com // More readable version allowOrigin ( http://example.org, http://example.com ) }
- 
Matching origins via regular expressions: config.cors { allowOrigin.pattern = https?://example\.(org|com) }
- 
Allow specific methods: config.cors { allowMethods = GET, POST, PUT, DELETE }
- 
Allow headers: config.cors { allowHeaders = ( Content-Type, ... ) }
- 
Allow credentialflag processing:config.cors { // Set to 1/true to enable allowCredentials = 1 }
- 
Expose headers: config.cors { exposeHeaders ( X-My-Custom-Header, X-Another-Custom-Header ) }
- 
Set maximum age of preflight request result: config.cors { // 10 minutes maxAge = 600 }
- 
Set maximum age via some stdWrapprocessing:config.cors { maxAge.stdWrap.cObject = TEXT maxAge.stdWrap.cObject { value = 600 } }
Issues
Found a bug? Need a feature? Let us know through our issue tracker.
Testing
All tests can be executed with the shipped Docker Compose definition:
docker-compose run --rm app composer build