Fix server-generated JS response processing on IE9 #29108
Merged
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.
Summary
Fix for #29069, IE9's lack of
xhr.response
. With this in place, server-generated JS responses, Turbolinks redirects etc should now be executed by IE9 when given in response to a rails-ujsremote: true
request.Other Information
This PR is not intended to make the rails-ujs test suite pass in IE9. That might be desirable, but it's more work than I could justify this week to nurse a dying browser. Tested with https://github.com/inopinatus/ujs-test-app instead.
xhr.response || xhr.responseText
in the call toprocessResponse
? Because falsy values other thannull
are still valid response objects.xhrResponseObject = if xhr.response? then xhr.response else xhr.responseText
? I felt this way showed the intent more clearly.