2016-07-18 7 views
0

クリックしたときに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の機能の混乱

+1

こんにちは、この種のエラーを解決するには、通常ブラウザに付属する開発者ツールが非常に役に立ちます。たとえば、Chromeでは、ページの任意の場所を右クリックして[要素の検査]を選択します。表示されるビューで[ネットワーク]タブをクリックします。その後、関数を呼び出して、リクエスト間に違いがあるかどうかを確認してください。 – user1582024

+0

あなたのt、l、cおよびwがvarとして宣言されていないのはなぜですか?これらの変数の値には見積もりが含まれていると思いますが、これらの値を確認できますか? –

+0

@ user1582024 XHRタイプは両方とも同じですが、動作するものは「Content-Encoding:gzip」です。エラーを返すURLに直接アクセスして、期待どおりのデータを返します。 –

答えて

0

ソリューションは、ここで見つけるhttps://stackoverflow.com/a/3445620/3676282

404エラーWordpressのが原因で解雇証券化y

+0

これは理論的に質問に答えるかもしれませんが、答えの本質的な部分をここに含め、参照のためのリンクを提供することが望ましいです(// meta.stackoverflow.com/q/8259)。 – GhostCat

0

この方法を試してみて、

url: theme.child_theme_uri+'/searcher.php', 
    type: 'GET', 
    data: {"t":t, "l":l, "c":c, "w":w} , 
+0

このような変数を送信した場合、最初のajax呼び出し(jQuery( 'searcher-rooms .button')がクリックされたときに定義されます)は404エラーを返します(404エラーですが、URLは正しくビルドされ、スタンドアロンとして機能します)。 –

関連する問題