After many hours, I've finally tracked down the issue.
First, you need to use the transport plugin that comes bundled with jQuery-file-upload because it was made for it ;) I'm not quite sure why the other one got a step further, but I'll get to that in a minute.
I noticed in IE that I was getting an "access is denied" JavaScript error somewhere in the core jquery library. From what I read online this usually happens when you try to submit to a URL at a different domain, which I wasn't doing, so I dismissed it.
I was comparing what the 2 different transport scripts did differently, when I came to a line that said form.submit()
in one version, and form[0].submit()
in the other. So I tried adding the [0]
and then noticed the "access has denied" error changed to point to that line. So clearly, it didn't like where I was submitting the files to.
I double checked the form.action
and the URL still looked fine. Through some Google-fu I discovered that you can also get this error if the event does not originate from the original/native file input element.
I had replaced the native input with a fancy one and then triggered a "fake" 'click' event on the hidden native input. This it didn't like.
Took out my fake upload button and plopped the native one (<input type="file"/>
fyi) back in, and now everything works like a charm in all browsers. Huzzah!