According to the HTTP RFC at http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html, an HTTP 307 redirect should keep the current HTTP method. However, Safari resets the method to GET. I haven't debugged this enough to know whether this is a WebKit bug or a CFNetwork bug. Test case: http://crypto.stanford.edu/~collinj/test/redirection/
See also: bug 11118, bug 11119.
The redirect request is constructed by the ResourceHandle implementation, so this is likely a bug with the underlying network library.
Note that this is still the case in Safari 5.0.2, although it may be limited to synchronous XHR.
This line of code appears to do this work: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm?rev=90834#L695 Perhaps we're not hitting that line in synchronous requests?
> The redirect request is constructed by the ResourceHandle implementation, so this is likely a bug with the underlying network library. Yes, that's how we see it too. <rdar://problem/10859411>/<rdar://problem/13625208>.