Ruby on rails sinatra中的URL重定向不起作用?
请查找我用于重新定向的代码,以防验证正确/正确Ruby on rails sinatra中的URL重定向不起作用?,ruby-on-rails,ruby,sinatra,Ruby On Rails,Ruby,Sinatra,请查找我用于重新定向的代码,以防验证正确/正确 post '/user/validate' do login = params[:login] pwd = params[:pwd] if User.authenticate(login, pwd).nil? @error = "Username and the password do not match" puts "There is an error in authentication" halt erb :
post '/user/validate' do
login = params[:login]
pwd = params[:pwd]
if User.authenticate(login, pwd).nil?
@error = "Username and the password do not match"
puts "There is an error in authentication"
halt erb :login
else
redirect to('https://www.google.com')
end
end
这不管用。尽管web控制台显示GET请求被触发到我的定向URL google。浏览器中的地址栏不会加载新页面,它会继续显示上一个请求的模板/视图
您好,请看下面的ajax调用的Javascript代码,使用这个重定向不起作用,但是使用普通的旧表单提交页面重定向起作用
$(document).ready(function()
{
$("#send").click(function(event)
{
var data = { "login": $("#login").val(), "pwd": $("#pwd").val() };
$.post( '/user/validate', data, 'json');
});
});
普通格式标签
首先回答您的原始问题: sinatra中的URL重定向不起作用? URL重定向与sinatra配合良好 问题 您的问题是使用jquery发布json数据。javascript解决方案和表单解决方案的区别在于表单创建表单数据 范例 要查看旋度示例中的差异,请执行以下操作: 表单数据 旋度-X柱127.1:4567/-d foo=bar 正常邮政数据 curl-X POST-H内容类型:application/json-d'{payload:xyz}'127.1:4567/ 正如你所看到的,这些是不一样的。现在的问题是,默认情况下,sinatra只解析表单数据 快速修复:request.body 如果您在on位置需要这些参数,您可以从以下位置手动解析参数: request.body.read 解决方案:rake contrib 或者最好使用rake contrib 使用gem安装rake contrib安装它 需要它 需要“机架” 需要“机架/控制器” 使用Rack::PostBodyContentTypeParser加载它
使用这些rake,您可以在params中解析post数据 你试过重定向吗https://www.google.com/“是的,两个都不行。我已经深入研究了这种情况,并意识到GET->GET redirect使用重定向助手方法进行工作,但是POST->GET和GET->POST似乎不起作用。有什么想法可以实现这一点吗?嗨,很抱歉稍后给出这个细节,但我正在使用ajax jquery在我编写的表单提交中进行后期查询。当我删除这个jquery并简单地使用完成表单提交时,它就可以工作了。所以基本上问题是如何用ajax运行它,表单提交你能展示你的js代码吗?“我知道它可能是什么。”先生,我希望编辑能有所帮助
<form method="post" action="/user/validate">
<input type="submit" value="Signup" name="submit">
</form>