compiler/natives/src/net/http: Set Fetch credentials to same-origin. #486
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.
This makes the behavior of http.DefaultTransport using Fetch API more similar as when using XHR API.
It's unfortunate to have to do this, since it's kinda magic, but this seems to be the most reasonable default. It's consistent with the previous behavior of XHR implementation.
There is no equivalent property in http.Request as far as I can tell. The only other way to set credentials would be to use req.AddCookie, but then one would need to get the cookie in JavaScript, which is not possible if that cookie has HttpOnly flag set.
It appears this is an unfortunate reality that we have to deal with to provide a useful http.DefaultTransport implementation on frontend, because of restrictions put into place due to security concerns on the web.
For reference, see:
https://fetch.spec.whatwg.org/#concept-request-credentials-mode
https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
So default XHR behavior without withCredentials set is like Fetch with "same-origin" credentials mode.
Updates #454.
/cc @dominikh