RJS не работает с IE - PullRequest
       10

RJS не работает с IE

1 голос
/ 31 августа 2010

Мой код:

# 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 с файлами, но ... почему?

1 Ответ

3 голосов
/ 31 августа 2010

Похоже, проблема с типом MIME.Вот пост, описывающий проблему и решение: http://agilerails.wordpress.com/2009/05/27/ie-throws-file-download-security-warning-on-form-submit/.

По сути, проблема в заголовках запросов IE.Вы должны будете использовать MIME-тип text / html, чтобы он работал.Подробнее об этом в этом SO вопросе .

У вас есть несколько вариантов:

  • Определить IE по user-agent и отправить текст / html, как описано здесь
  • Добавить format.html выше format.js в списке приоритетов ответа на запрос

Редактировать: не совсем уверен, что это то, что вы хотите для всех запросов, посколькувы также делаете AJAX, но на последнем шаге, когда вы делаете перенаправление, вы должны использовать MIME-тип text / html.

...