cors: Don't return an error for preflight requests with non-matching origin #224
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Depends on #219, will rebase after merge.
This PR contains behavioral changes.
This is the third and final preliminary refactoring for the implementation of the new CORS API I proposed in #194 (comment).
Motivation
As far as my understanding goes, there is no good reason to return an error status code when a preflight request is made from an origin that isn't configured to be allowed (since this whole thing is a browser-side security feature).
Solution
Just return the configured list of allowed origins or in case a closure is set, an empty list, on origin "mismatch". This should make the CORS middleware a lot more predictable and improve the debugging experience in cases where you haven't gotten the CORS rules correct yet.