Rails 3、IE9 Jquery文件上载-未触发回调

Rails 3、IE9 Jquery文件上载-未触发回调,jquery,ruby-on-rails-3,internet-explorer,file-upload,jquery-file-upload,Jquery,Ruby On Rails 3,Internet Explorer,File Upload,Jquery File Upload,标题说明了一切,尝试了比我记忆中更多的方法,但我仍然无法触发我的回调。我正在使用Rails3.0.7和jQuery1.6,以及最新的jQueryFileUpload插件 我已经按照一些SO链接的建议尝试并调试了它,到目前为止,至少我能够将文件发送到Rails中。然而,当返回响应时,IE9拒绝对其执行任何有意义的操作。以下是我正在做的: Rails视图: <form class="file_upload" action="/search/via_uploaded_file" encType=

标题说明了一切,尝试了比我记忆中更多的方法,但我仍然无法触发我的回调。我正在使用Rails3.0.7和jQuery1.6,以及最新的jQueryFileUpload插件

我已经按照一些SO链接的建议尝试并调试了它,到目前为止,至少我能够将文件发送到Rails中。然而,当返回响应时,IE9拒绝对其执行任何有意义的操作。以下是我正在做的:

Rails视图:

<form class="file_upload" action="/search/via_uploaded_file" encType="multipart/form-data" method="post" accept-charset="UTF-8">
  <div style="margin: 0px; padding: 0px; display: inline;">
    <input name="utf8" value="✓" type="hidden">
    <input name="authenticity_token" value="whatevs">
  </div>
  <input id="uploaded_file" name="uploaded_file" type="file">
  <input id="fileupload" name="commit" value="upload" type="submit">
</form>
fileupload
code:

$("#fileupload").fileupload
  dataType: 'json' #have tried with and without this 
  add: (e, data) ->
    data.submit() #this will 'force' the submit in IE < 10 (not in my case)
  done: (e, data) ->
    console.log('data')
    #foobaz
  fail: (e, data) ->
    console.log('fail')
  always: ->
    console.log(data)
$(“#fileupload”).fileupload
数据类型:“json”#已尝试使用和不使用此
加:(e,数据)->
data.submit()#这将在IE<10中“强制”提交(我的情况下不是这样)
完成:(e,数据)->
console.log('data'))
#福巴兹
失败:(e,数据)->
console.log('fail')
始终:->
console.log(数据)
我知道你在想什么-啊哈!他正在将
fileupload
js添加到提交按钮上!但是,如果我不这样做,IE9就会拒绝做任何事情(也不会获取文件路径)。以下是生成的标题:

以下是回应:

疯狂的是,即使我在rails中以
text/html
的形式响应(知道IE的iFrame请求不知道xmlhttp,并且
fileuploader
需要JSON,因为我将其添加为
数据类型
选项),我得到的只是一个带有响应体的新页面:

我做错了什么?我花了好几天的时间思考这个问题,你会为我指明正确的方向,让我的日子过得更好。提前谢谢

$("#fileupload").fileupload
  dataType: 'json' #have tried with and without this 
  add: (e, data) ->
    data.submit() #this will 'force' the submit in IE < 10 (not in my case)
  done: (e, data) ->
    console.log('data')
    #foobaz
  fail: (e, data) ->
    console.log('fail')
  always: ->
    console.log(data)