IEに問題があります。このウェブサイトの最後を願っています…</p>
だから、私はWordpressで作業していて、保護された投稿がいくつかあります。私が使用しなければならないテンプレート(代理店が選択)は、すべての投稿を同じページにロードしましたが、何千もの写真があるので、それは本当に良い考えではありませんでした。そのため、訪問者がそのアイテムをクリックしたときに、ajaxを使用してページをロードすることにしました。
したがって、パスワードフォームについても同じ考えで、Ajaxで送信されます。リクエストの前に、Cookie「pageloaded」をページのIDに設定して、応答ページに表示される投稿を確認しました(1ページにすべての投稿があるため、保護された投稿を生成するだけです)。
ページに移動すると、Ajaxはpost変数を送信しますが、フォームでは、wp-login.php(フォームのアクションページ)が前のページにリダイレクトされるため、post変数を失います。それから私はクッキーを使うことを思いついた!まあ、それはIEを除くすべてのブラウザでうまく機能します:/
var pageloaded = form.find( 'input[name="pageloaded"]' ).val();
$.cookie('wp_pageloaded', null);
$.cookie('wp_pageloaded',pageloaded, { path: '/' });
var permalink = form.attr('action');
var newurl = permalink;
$.ajax({
type: 'post',
headers: {
"Cache-Control":"no-cache",
"Expires": "Mon, 26 Jul 1997 05:00:00 GMT" },
url:newurl,
data:{
post_password: post_password,
pageloaded: pageloaded
},
success:function(data, textStatus, jqXHR){
var container_loaded = $(data).find('#'+pageloaded+' .the-content');
$(container).html($(container_loaded).html());
var formNew = $(container).find('form');
$(formNew).submit(function(event) {
checkpassword(event);
});
}
});
IEの反応は正確には何ですか:彼は最初のフォームのCookieを保存しているので、最初のリクエストは問題ありません。2番目のリクエストでは、Cookieが引き続き最初のリクエストです。
ページをリロードします。今回はCookieが2番目のフォーム変数に設定され、最初のフォームは無視されます。以下同様に続きます。最後に送信されたフォームは、ページの更新時に次の変数を設定します(手動)。
IEはCookieを適切に設定しているように見えますが、ajaxリクエストで古いCookieを読んでください:/
ご協力いただきありがとうございます ;)
編集:最初にsetcookie()を実行するphpファイルでリクエストを実行し、次に最後のファイルでajaxリクエストを実行しようとしましたが、それでも同じ問題です:/セッションで試行しますが、 IEの何が問題なのかを知る:/