2010-08-30 42 views
1

我的代碼工作:RJS不與IE

# app/controllers/log_controller.rb 

class LogController < ApplicationController 
    def in 
    @user = User.login(params[:login]) 
    respond_to do |format| 
     format.js 
    end 
    end 
end 

# app/views/log/in.js.erb 
redirect_to("/myprofile") 

# public/javascript/application.js 
function redirect_to(url) { location.href = url; } 

在FF和Chrome和Safari和所有的瀏覽器的偉大工程。用戶登錄系統並重定向到她的個人資料,但在資源管理器中,它要求下載文件!你知道,那個小黃條讓用戶下載一個文件。我認爲是錯誤的ajax命令與文件,但...爲什麼?

回答

3

聽起來像是MIME類型的問題。以下是描述問題和解決方案的文章:http://agilerails.wordpress.com/2009/05/27/ie-throws-file-download-security-warning-on-form-submit/

基本上,問題出在IE的請求頭上。你將不得不使用MIME類型的文本/ HTML來使其工作。有關它的更多信息,請登錄this SO question

您有幾種選擇:

  • 檢測IE的用戶代理和發送文字/ HTML描述here
  • 以上format.js在請求響應的優先級列表添加format.html

編輯:不太確定這是你想要的所有請求,因爲你也在做AJAX,但在最後一步,當你進行重定向時,你應該提供一個text/html MIME類型。