オートコンプリートがajaxソースからデータを取得するjQueryオートコンプリートを実装しようとしています。ただし、何らかの理由で電話をかけると302になり、その結果404になります。
これは私が持っているものです:
functions.php:
function my_ajax_foo() {
die("OK");
}
add_action('wp_ajax_my_ajax_foo', 'my_ajax_foo' );
add_action('wp_ajax_nopriv_my_ajax_foo', 'my_ajax_foo' );
私のJavascript:
function onGetData(term, callback) {
jQuery.post( "http://mydomain.com/wp-admin/admin-ajax.php", {
action: "my_ajax_foo",
cookie: encodeURIComponent(document.cookie),
term: term
},
function( response ) {
console.log( response );
} );
}
jQuery(document).ready(function() {
jQuery("#my_input_field").autocomplete( { source:onGetData } );
});
すべてのJavascriptが正しくロードされています。オートコンプリート入力ボックスに入力すると、ajax呼び出しが行われますが、呼び出しがHTTP 302になることをFirebugで確認できます。
ブラウザのURLから単にhttp://mydomain.com/wp-admin/admin-ajax.php
を呼び出すと、-1
が返されるので、そのURLが存在することがわかります。
任意の助けは大歓迎です。
私は言うだけで、それをスキップしてください:
cookie: encodeURIComponent(document.cookie)
XHRにクッキーを投稿する必要はありません - ブラウザがそれを処理します。
まあ、代わりにそのようなものについてどうですか(未テスト):
data:{'term':encodeURIComponent($.term)}
最も簡単な方法は、FireBugを使用してNetパネルを開き、両方のHTTPヘッダーを調べることです。