为什么使用1x1 GIF而不是XHR?

Simple question: why do client-side scripts (like ga.js from Google Analytics) send data to the server in the form of query params embedded in a 1x1 GIF request? Why not use XMLHttpRequest?

Is it just to achieve cross-browser compatibility? Or are there other reasons?

xhr is subject to same origin policy and not all clients have reliable scripting support. gif beacons are solid as a solution. //should be a comment