New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
crossOrigin attribute needs to be applied before <img src> attribute #14035
Comments
|
It looks like this is probably because the src attribute gets assigned first. If you change the JSX to have the crossorigin tag before the src then it looks like it works correctly. We have a special case for react/packages/react-dom/src/client/ReactDOMComponent.js Lines 406 to 409 in 169f935
We could possibly do similar for crossorigin, though I'm unsure if we should want to. |
What would be the arguments for not wanting to do that? |
Can this be relied on? As far as I can tell neither Babel docs nor the JSX spec specify that the input order is preserved in the output (although empirically it does appear to be with Babel), and MDN states that object iteration order is implementation-dependent (although empirically it does appear to match the declaration order, at least with object literals with string keys). |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contribution. |
|
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you! |
|
This is still an issue please reopen |
|
This issue has been automatically marked as stale. If this issue is still affecting you, please leave any comment (for example, "bump"), and we'll keep it open. We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment! |
|
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you! |
|
I just bumped into this. Can we re-open this issue please? |
|
This is a very difficult issue to troubleshoot because order does not normally matter for attributes. Reopen the issue please and save devs precious time :) |
|
Hello! I just spent few hours trying to find out why some of my requests for images were failing with CORS. And that was the reason. Maybe that needs to be somehow mentioned in the doc: order of attributes matters ? or |
|
Staying on top of this confusing bug is costing us time and creating tech debt in our codebase. It feels bad to see this issue being closed with the bug remaining unfixed. Can someone with the appropriate permissions please hit the reopen button? |
|
This bug is still present |
Do you want to request a feature or report a bug?
bug
What is the current behavior?
React doesn't handle changing the crossOrigin attribute properly
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:
Same img going from no
crossoriginattribute tocrossorigin=anonymousIn pure JS:
http://jsfiddle.net/R6DWN/39/
On first load Origin is not set (as should be according to chrome):
When clicking
reload:In React:
https://jsfiddle.net/69z2wepo/316905/
when clicking
reloadthe img element does get updated with crossorigin but the image isn't reloadedSame img loading twice with
crossorigin=anonymousIn pure JS:
http://jsfiddle.net/R6DWN/40/
The request is only fired once if you check the network tab with those headers:
In React:
https://jsfiddle.net/69z2wepo/316907/
On first load you have those headers:
On clicking
reloadfor some reason the request is fired again WITHOUT the origin header even with the crossOrigin='anonymous':What is the expected behavior?
When rerendering an img with the same src but defining the
crossoriginattribute it should reload the image with theoriginheaderWhen rerendering an img with the same src and
crossorigin=anonymousagain it should not fire a new request withoutoriginheaderWhich versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
Google Chrome
Version 69.0.3497.100 (Official Build) (64-bit)
React v16.6.0
The text was updated successfully, but these errors were encountered: