1

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の何が問題なのかを知る:/

4

1 に答える 1

0

わかりました、セッションでのテストは素晴らしいアイデアでした! :P 何だと思いますか?IE の Ajax リクエストで Cookie を有効にするに<? session_start();?>は、リクエスト ファイルの先頭に書き込むだけです。理由はわかりませんが、うまくいきます:/

于 2013-01-19T13:18:35.283 に答える