我已对某些观点进行了调整,但出于某种原因,它不会保留room_type
并尝试重定向到https
。我有以下代码:
http
正如您所看到的那样,我提供了URL,但它仍然会阻止请求,因为它被重定向到$(function() {
var polling_url = "#{eligibility_check_polling_phone_details_url}";
var redirect_url = "#{eligibility_check_result_phone_details_url}";
var checkResult = function() {
$.getJSON(polling_url, function(result) {
if(result.complete) location.href = redirect_url;
else setTimeout(checkResult, 2000);
});
};
// some more stuff
});
,这是自XSS以来不允许的。
由于
修改:显然http
因某种原因返回#{eligibility_check_result_phone_details_url}
,而所有其他网址均为http:
答案 0 :(得分:0)
根据您的评论,由于console.log('redirect_url')
会返回http
链接,您所要做的就是用Javascript替换协议:
var https_redirect_url = redirect_url.replace("http", "https");
if(result.complete) location.href = https_redirect_url;
如果Rails执行重定向,您会在服务器日志中看到重定向。
如果您希望所有路线/帮助者都是https
,可以将其添加到routes.rb
default_url_options protocol: :https
此外,如果您只想将某些控制器限制为https
,则可以在控制器/命名空间级别执行此操作:
class SomeController < ApplicationController
force_ssl if: :ssl_configured?
def ssl_configured?
!Rails.env.development?
end
end