2012-02-25 8 views
0

を取得するために失敗:jQueryのは、私は非常に単純なスクリプトとても似ていたデータ

$(function() { 

    var url = theme_directory + '/func/api.php'; 

    $.get(url, function(data) { 
     alert("Data Loaded: " + data); 
    }); 

}); 

そしてapi.phpは、次のようになります

<?php 
echo('hello'); 
define('WP_USE_THEMES', false); 
require_once(dirname(__FILE__) . '/../../../../wp-blog-header.php'); 

これは動作します。しかし、私はそうのような下の出口に置くとき:私はJavaScriptを使用している場合

<?php 
define('WP_USE_THEMES', false); 
require_once(dirname(__FILE__) . '/../../../../wp-blog-header.php'); 
echo('hello'); 

そして私はそれが私を示しapi.phpを参照「ハロー」しかし、それは私に警告を表示しません。こんにちはバックアップを移動すると、再び動作します。それは私をとても混乱させます。


<?php 
echo ' '; 
define('WP_USE_THEMES', false); 
require_once(dirname(__FILE__) . '/../../../../wp-blog-header.php'); 
print_r($wp); 

今のjavascriptは私に$ WPの内容が表示されます...しかし、echo ' ';とjavascriptのアラートを削除することは起動されません。


これはWordPress Permalinksと関係があります。私はそれをオフにすると、それは動作します、私はそれをオンにしません。

+0

Fiddlerまたはブラウザのコンソールでレスポンスを調べて、返されているものを確認しましたか? – epascarello

+0

MACバージョンのFiddlerはありません(MACは問題ではありません;) – Mark

+0

[チャールズ](http://www.charlesproxy.com/)またはブラウザのデバッガを使用するより。 :)また、[ajaxError()](http://api.jquery.com/ajaxError/)を設定して、失敗したリクエストをキャッチすることもできます。 – epascarello

答えて

0

問題が多分require_once(dirname(__FILE__) . '/../../../../wp-blog-header.php'にあります。そのパスは見つかりません

しかし、単に結果の文字列を表示したい場合は、load()を使用してください。

$('#input').load('api.php'); 
+0

Loadは上記のgetと同じように動作します。上のエコーは機能し、上のエコーを入れず、トリガされません。それは混乱する部分です。 – Mark

1

私はワードプレスの "空想" パーマリンクは、Apacheのmod_rewriteを使用することを考えています。 ApacheがブラウザをリダイレクトするためにHTTP 301を返す場合、jQueryはそのリダイレクトに従いません。あなたはそれを回避するためにthis Stack Overflow questionをチェックしたいかもしれません。

+0

興味深いことに、リダイレクト処理をエコーすることによって、リダイレクト処理が行われず、それが機能する理由はありますか? – Mark

+0

それは私が推測しているものです。非ヘッダコンテンツをecho-edした後は、Apacheはもうヘッダを送信できないので、リダイレクトはできません。 – Brandan

関連する問題