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 с файлами, но... почему?
1 ответ
Похоже, проблема с типом MIME. Вот пост, описывающий проблему и решение: http://agilerails.wordpress.com/2009/05/27/ie-throws-file-download-security-warning-on-form-submit/.
По сути, проблема в заголовках запросов IE. Вы должны будете использовать MIME-тип text/html, чтобы он работал. Больше информации об этом в этом вопросе.
У вас есть несколько вариантов:
- Определите IE по user-agent и отправьте текст / html, как описано здесь
- добавлять
format.html
вышеformat.js
в списке приоритетов ответа на запрос
Изменить: не совсем уверен, что это то, что вы хотите для всех запросов, так как вы также делаете AJAX, но на этом последнем шаге, когда вы делаете перенаправление, вы должны предоставлять MIME-тип text/html.