0

私の開発マシンでは、すべてが正常に機能します。ライブサーバー(Godaddy)で、BuddyPressからのAJAXリクエストがFireBugで結果と404エラーを返しています。しかし、スクリプトは結果を失敗と見なしており、インジケーターは回転し続けます。

例:ホームページにhttp://jobaru.com/ 最新の| アクティブ| グループページの文字だけでなく、AJAXを使用するメンバーの下で人気があります。

私が試したこと:ファイルが実際に最初に存在することを再確認し、読み取り可能なアクセス許可を確認しました。新規インストールしました。

404ヘッダーと有効な応答を返す理由について何かアイデアはありますか?

4

8 に答える 8

3

なぜ 404 が返されるのかわかりませんが、このコード行を /wp-content/plugins/buddypress/bp-core/bp-core-ajax-handler.php の do_action() の前に追加してみてください。

status_header( 200 );

私は BuddyPress 1.0 RC1 の大幅に変更されたバージョンを実行しており、bp-custom.php で ajax 投稿をインターセプトしていますが、独自のロジックを実行する前にカスタム ファイルにステータス ヘッダーを設定すると、うまくいきました。

于 2009-06-05T19:04:53.437 に答える
2

次のアップデートでブレーキをかけるBuddypressコアをハッキングする代わりに、要求されたアクションをインターセプトする関数を追加する必要があります。

私の問題は、アクティビティループのカスタムグループURL内で、「morelink」がadmin-ajax.phpで404respondeヘッダーエラーを取得していたことでした。応答内容を確認すると、すべてのアクティビティデータがそこにありました。だから、何が問題を引き起こしているのかわからない。

それを解決するために、ajax呼び出しがトリガーされたときに200のステータスヘッダーを返す関数を追加しました。私の場合、「get_older_updates」アクションが必要でしたが、/ bp-themes / bp-default / _inc / ajax.php:27で定義されている他のアクションにも使用できると思います。

add_action( 'wp_ajax_activity_get_older_updates', 'bp_dtheme_activity_template_loader2' );
add_action( 'wp_ajax_nopriv_activity_get_older_updates', 'bp_dtheme_activity_template_loader2' );

function bp_dtheme_activity_template_loader2(){
    if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'activity_get_older_updates')
    {
        status_header( 200 );
    }
}   
于 2013-02-22T12:32:28.100 に答える
1

私はGoDaddyでこの問題を抱えていて、それが私を夢中にさせていましたが、解決策を見つけました。200ステータスコード(header( "HTTP / 1.1 200 OK");)を送信しても、404は削除されませんでした。標準のURLをindex.phpにルーティングするmod_rewriteルールがあったので、次のようなURLを使用します。

www.example.com/myroute/ajax_get_current

基本的に次のように、アプリケーションにルーティングされて送信されていました。

www.example.com/index.php/myroute/ajax_get_current

かなり標準的なもの。この問題は、ルートと同じ名前のファイルをドキュメントルートに作成したときに発生しました。

DOCROOT/myroute.php

次に、説明したとおりの結果が得られます。404エラーですが、適切な応答が返されます。ファイルを「myroute_cron.php」に変更すると404が消え(適切な200)、元に戻すと404になることを確認しました。

なぜこれが発生するのか(特に、適切な応答を取得するために適切なスクリプトを明確に実行していたため)、おそらくMultiViewsで何かが発生するのかわかりません。お役に立てれば。

于 2012-07-06T23:08:36.623 に答える
1

あなたのコメントから判断すると、これは GoDaddy に関係しているようです。彼らのサポートから返事が来るまで、私は AJAX スクリプトを修正して、その特定のリクエストの 404 エラーを無視します。

于 2009-06-04T05:03:07.770 に答える
0

AJAX応答を調べていますが、返されるのは純粋なHTMLの代わりに、最初に0[[SPLIT]]と最後にゼロがあるように見えます。これはそれと関係がありますか?

于 2009-06-04T01:27:21.057 に答える
0

ajax失敗(エラー)のエラーハンドラーをすでに追加していることを確認しますか?最初にスピンインジケーターを非表示にして、効果が発生することを確認してください。

于 2009-06-04T01:27:38.607 に答える
0

AJAXを使用してCountrycityドロップダウンメニューで遊んでいるときに404応答エラーが発生しましたが、問題は

<select name="lm_country" id="lm_coutry" 
    onChange="getCity('getcities.php?country='+this.value)">

次に、以下にリストされている完全なURLを指定しました;-

<select name="lm_country" id="lm_coutry" 
    onChange="getCity('http://localhost/civic/includes/getcities.php?country='+this.value)">
于 2010-08-10T05:56:12.813 に答える
0

FWIW、GoDaddy.com でホストされている場合、WordPress プラグインの一部として JSON 形式の返信でまったく同じ問題が発生しました。JSON の結果は正しく送信されますが、HTTP 応答のステータス コードは 404 です。

私はこれが彼らの Apache ヘッダー/構成の問題であるとかなり確信しており、この問題の真相を突き止めるために彼らの技術サポート チーム (幸運を祈ります) に連絡を取ろうとしています。

彼らから返信があれば、ここに投稿します。

于 2009-12-19T19:20:12.827 に答える