Populate headers for HTTP OPTIONS requests #1062
Open
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.
When running middleware for an HTTP OPTIONS request (for CORS for example). There is a bug where the headers from the request are not populated. Also referenced here: #721 (comment).
The reason this occurs is because the parser will parse the URL first (before the headers) and in the
handle_url
function, it will end parsing the request early, returning the response, and triggering the middleware.The proposed changes will prevent us from exiting early in the
handle_url
function and instead exit early at thehandle_headers
function, which is executed when all of the headers have finished parsing.It is also important to note that OPTIONS requests are fully handled within crow, and crow will never call a user defined OPTIONS route.
I believe this Fixes #721.