私は、フォームを扱うことができるポップアップボックス(jQuery付き)を作成しようとしています。そのほとんどは、すべて動作しています。私が持っている唯一の問題は、成功したログインおよび/または登録で、PHPがヘッダーの場所を送信してユーザーに "自宅"にリダイレクトされ、フォームにロードされたdivにリダイレクトの無限ループが作成されることです。
location
ヘッダーが投稿要求に送信され、新しいlocation
として送信されている実際のURLを取得する場合は、どうすれば読むことができますか?
これは私が(他のものの間で)これまでに試してみましたです:
$('.register').live('submit', function(e) {
e.preventDefault();
var form_data = $(this).serialize() + '®ister=register&js=true';
$.post(site_path + '/register', form_data, function(data, text, xhr) {
alert(xhr.getResponseHeader("Location"));
// $('.overlay_container').html(data);
});
});
ない私が間違ってやっている正確に何をしてください、しかし、私の知る限りでは、これらの線に沿って何かが動作するはずです。また、期待通りの結果が得られないプレーンなAJAX投稿要求でこれをやってみました。
ちょうど、場所のヘッダーは送信されません。場合にのみ、誰かがログインに成功、レジスタなど
理想的には、これは私が達成しようとしているものです:限り
$('.register').live('submit', function(e) {
e.preventDefault();
var form_data = $(this).serialize() + '®ister=register&js=true';
$.post(site_path + '/register', form_data, function(data, text, xhr) {
var header_location = xhr.getResponseHeader("Location");
if(header_location == null) {
$('.overlay_container').html(data);
}else{
window.location = header_location;
}
});
});
:ここ
は、最終的な結果は次のようになります! '.on()'を使う。あなたのバージョンのjQueryで '.on()'が利用できない場合は、 '.delegate()'を使います。 – Tadeck
@Tadeckもともと私は '.on()'を使ってみましたが、うまくいきません。私はGoogleのCDNの1.7.1を使用しています。私が知る限り、それはそこに(1.7のように)含まれなければならないが、うまくいかない。 http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js –
'.on()' **は1.7以降**含まれており、間違いなく動作します。さらに、 '.on()'は '.live()'と '.delegate()'の両方を完全に置き換えることができ、それらより優れており、それらを置き換えることを意図しています。あなたが間違って使っているか、他の間違いをしているようです。 – Tadeck