Когда я перенаправляю сообщение, возвращающееся на страницу, где отображается форма, JQuery mobile показывает мне результаты вместо формы.
Допустим, у меня есть три ресурса:
/ => Just shows a link to the /redirect_to resource, this is to test
/redirect_to => GET: Shows a form to say your name in /thank_you
/redirect_to => POST: Just redirects to /thank_you showing the name that you input
/thank_you => GET: Shows a text "Thank you name!"
После того, как я попадаю на страницу Спасибо! , если я пытаюсь вернуться домой, а затем перейти к /redirect_to
, я получаю содержимое /thank_you
вместо формы /redirect_to
, если я обновлю страницу, я получу форму.
Так что вместо того, чтобы смотреть на форму redirect_to
, я вижу страницу thank_you
.
Вот код в Sinatra , если вы этого не понимаете, в этот момент я перепишу его в Flask, Snap, Rails, Django (мое приложение на Django) .. но это должно быть достаточно хорошо, чтобы читать. Вот код на Github (поскольку StackOverflow не обнаруживает мой рубин): https://gist.github.com/1061639
Чтобы запустить приложение, вы в основном устанавливаете sinatra: gem install sinatra
И запустить его: ./jquerymobile_redirect_error.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
get '/' do
<<-end_page
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header" data-position="fixed">
<h1>JQuery Error</h1>
<a href="/" data-icon="home">Home</a>
<a href="/" data-icon="delete">Logout</a>
</div><!-- /header -->
<div data-role="content">
<h1>Go to /redirect_to <a href="/redirect_to">here</a>.
</div><!-- /content -->
<div data-role="footer" data-position="fixed">
<h1>Footer</h1>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
end_page
end
get '/redirect_to' do
<<-end_page
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header" data-position="fixed">
<h1>JQuery Error</h1>
<a href="/" data-icon="home">Home</a>
<a href="/" data-icon="delete">Logout</a>
</div><!-- /header -->
<div data-role="content">
<form action="/redirect_to" method="post" accept-charset="utf-8">
<p><label for="name">Name</label><input type="text" id="name" name="name" value="" id="name" placeholder="input your name">
<p><input type="submit" value="Redirect to /thank_you →"></p>
</form>
</div><!-- /content -->
<div data-role="footer" data-position="fixed">
<h1>Footer</h1>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
end_page
end
post '/redirect_to' do
redirect "/thank_you/#{params[:name]}"
end
get '/thank_you/:name' do |name|
<<-end_page
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header" data-position="fixed">
<h1>JQuery Error</h1>
<a href="/" data-icon="home">Home</a>
<a href="/" data-icon="delete">Logout</a>
</div><!-- /header -->
<div data-role="content">
<h1>Thanks #{name}!</h1>
</div><!-- /content -->
<div data-role="footer" data-position="fixed">
<h1>Footer</h1>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
end_page
end