クリックしたときにajaxリクエストを行うと、正常に動作します。しかし、問題は、内部でajaxリクエストを持つ要素に関数をバインドしようとするときです。jQuery ajaxで名前付き関数をバインドすると404エラーが発生する
(同じサーバー、同じドメインを...)関数は、このURLに私に404エラーを与えるが、ファイルが存在し
はjQuery(function() {
jQuery('.searcher-rooms .button').click(function() {
var n = jQuery.now(),
l = jQuery('.town-list').val(),
c = jQuery('.short-hotel-list').val();
if (l == null) {
l = 'all';
};
if (c == null) {
c = 'all-hotels';
};
if (l != '' && l != 'all' && l != 'current') {
n += '&l='+l;
};
if (c != '' && c != 'all-hotels') {
n += '&c='+c;
};
jQuery.ajax({
url: theme.child_theme_uri+'/searcher.php?t='+n,
type: 'GET',
beforeSend: function() {
jQuery('#data-wrapper').addClass('loading');
}
}).done(function(data) {
jQuery('#data-wrapper').html(data).attr('data-time', n.toString().split('&')[0]).attr('data-location', l).attr('data-hotel', c);
jQuery('#data-wrapper').removeClass('loading');
jQuery('.load-more-hotels').bind('click', d_more_hotels);
})
})
});
function d_more_hotels() {
var e = jQuery('#data-wrapper'),
t = e.attr('data-time'),
l = e.attr('data-location'),
c = e.attr('data-hotel'),
w = jQuery('.load-more-hotels').attr('data-page');
jQuery.ajax({
url: theme.child_theme_uri+'/searcher.php?t='+t+'&l='+l+'&c='+c+'&w='+w,
type: 'GET',
beforeSend: function() {
jQuery('#data-wrapper').addClass('loading');
}
}).done(function(data) {
jQuery('#data-wrapper').html(data)
jQuery('#data-wrapper').removeClass('loading');
jQuery('.load-more-hotels').attr('data-page', parseInt(w)+1).unbind().bind('click', d_more_hotels);
})
}
「d_more_hotels」関数内
jQuery.ajax機能は、URLで404エラーを与えますファイルは存在します。
私はすべての変数をチェックし、ログを使って完全なURLパラメータが使用されていることを確認しましたが、すべてがOKです。
WordPressの最新バージョンのフレームワークで作業しています。
:
ヘルプは評価されています。
EDIT:
ソリューションは、ここで見つけるhttps://stackoverflow.com/a/3445620/3676282
WordPressの機能の混乱
こんにちは、この種のエラーを解決するには、通常ブラウザに付属する開発者ツールが非常に役に立ちます。たとえば、Chromeでは、ページの任意の場所を右クリックして[要素の検査]を選択します。表示されるビューで[ネットワーク]タブをクリックします。その後、関数を呼び出して、リクエスト間に違いがあるかどうかを確認してください。 – user1582024
あなたのt、l、cおよびwがvarとして宣言されていないのはなぜですか?これらの変数の値には見積もりが含まれていると思いますが、これらの値を確認できますか? –
@ user1582024 XHRタイプは両方とも同じですが、動作するものは「Content-Encoding:gzip」です。エラーを返すURLに直接アクセスして、期待どおりのデータを返します。 –