Когда я перенаправляю сообщение, возвращаясь к странице, на которой отображается форма, 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 не обнаруживает мой ruby): https://gist.github.com/1061639
Чтобы запустить приложение, вы в основном устанавливаете синатра: 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="#" onclick="location.href='http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css'; return false;" />
<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="#" onclick="location.href='http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css'; return false;" />
<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="#" onclick="location.href='http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css'; return false;" />
<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