I already created http://bugs.jquery.com/ticket/6873 but it was incorrectly closed as duplicate of http://bugs.jquery.com/ticket/6908. But really these issues are completely different.
Let me explain with sort example:
var url = 'http://' + window.location.hostname;
$.get(url + ':80');
1. Deploy such page to some web server (on 80 port)
2. Open page in a browser and see requests
3. Two requests will be made
Expected result: both requests should have X-Requested-With header.
Actual result: only one request (second in platform preview versions of IE9 and first in other browsers) will have this header.
Main problem in this line:
remote = parts && (parts && parts !== location.protocol || parts !== location.host);
Default web port (80) can be presented in window.location.host or not (depends on the browser) also it can (or not)be presented in the URL for AJAX request. So condition parts !== location.host is incorrect if parts (url of request) or location.host (current url reported by browser) contains default port (:80) but not both.