]> git.mxchange.org Git - quix0rs-gnu-social.git/commit
Partial fix for tickets #2194, #2393: Workaround for Meteor breaking AJAX error respo...
authorBrion Vibber <brion@pobox.com>
Wed, 17 Nov 2010 22:24:35 +0000 (14:24 -0800)
committerBrion Vibber <brion@pobox.com>
Thu, 18 Nov 2010 00:08:41 +0000 (16:08 -0800)
commitb73c162256fe5c7532c6d6e97453ee19e6ecac4e
tree0fbf378ef6aefbcae05a4675459c5afbf7667a00
parent197b56778a04a1d0f12dabb84e95dc9b80902aeb
Partial fix for tickets #2194, #2393: Workaround for Meteor breaking AJAX error responses returned on posting new notices. Fixes things in Firefox 4, but Safari 5 and Chrome 8 still don't return data... either on success or failure! Sigh.

The Meteor realtime plugin sets document.domain to the common prefix between the main server and the Meteor server's hostnames, which overrides the same-origin controls on JavaScript DOM access so the two parts of the app can speak to each other.
This unfortunately causes "fun" side effects for XMLHTTPRequest access to the main domain... if the new domain doesn't match the actual host (eg 'status.net' instead of 'brion.status.net') then we can't access the XHR's responseXML attribute, which holds a DOM tree of the parsed XML return data.
As a workaround, if we can't get at the contents there, we'll parse a fresh DOM tree in the local context from the responseText property, which remains available.

In the longer term, recommend retooling the realtime stuff so it's not fiddling with document.domain. It could also be an issue as it could allow local JavaScript XSS attacks to migrate to subdomains in other open windows.
js/util.js
js/util.min.js