WordPressのAJAXで別ドメインのphpからjsonデータ取得
WordPressからAJAXでドメインが異なるphpからデータを取得(JSON形式)したいと考えております。
ブラウザにhtt形式でhttps://〇〇〇.jp/test.php?des=50とうつと、JSONデータが表示されます。
このdes=50をGET形式ではなく、ブラウザからユーザーが入力した値をPOST形式で送りたいです。
function.phpに以下のコードを書いているのですが、successのあとにfalseというよくわからない内容が戻ってきます。
以下は、function.phpに記述している内容です。
function ajax_scripts() {
$handle = 'tour_main';
$file = get_template_directory_uri() . '/js/' . $handle . '.js';
wp_register_script( $handle, $file, array( 'jquery' ) );
$action = 'tourajax-action';
wp_localize_script( $handle, 'TOURAJAX_AJAX', [
'api' => admin_url( 'admin-ajax.php' ),
'action' => $action,
'nonce' => wp_create_nonce( $action )
]);
wp_enqueue_script( $handle );
}
add_action( 'wp_enqueue_scripts', 'ajax_scripts' );
function ajax_tourajax_call () {
$action = 'tourajax-action';
$data = '';
if( check_ajax_referer( $action, 'nonce', false ) ) {
$data = @file_get_contents("https://〇〇〇.jp/test.php?des=50");
if ( is_wp_error( $data ) ) {
echo $data->get_error_message();
exit;
}
else {
wp_send_json( $data );
}
} else {
status_header( '403' );
$data = 'Forbidden';
}
header( 'Content-Type: application/json; charset=UTF-8' );
echo wp_send_json( $data );
//die();これは必要??
}
add_action( 'wp_ajax_tourajax-action', 'ajax_tourajax_call' );
add_action( 'wp_ajax_nopriv_tourajax-action', 'ajax_tourajax_call' );
以下は、jsに書いている内容です。
jQuery("#testbutton").click( function(){
var JSONdata = {
action: TOURAJAX_AJAX.action,
nonce: TOURAJAX_AJAX.nonce,
des: jQuery("#des").val()
};
alert(JSON.stringify(JSONdata));
jQuery.ajax({
url : TOURAJAX_AJAX.api,
type: "POST",
dataType : 'json',
data : JSONdata,
scriptCharset: 'utf-8',
success : function(data) {
// Success
alert("success");
alert(data);
jQuery("#response").html(JSON.stringify(data));
},
error : function(data) {
// Error
alert("error");
alert(JSON.stringify(data));
jQuery("#response").html(JSON.stringify(data));
}
});
})
どなたか教えてください。