## 概要
wpxサーバにあるランディングページを修正しているのですが、
wp-admin-ajaxにgetのリクエストを送信すると何故か400エラーが帰ってきます。
ランディングページはhtmlで作成されてます。
ファイル構成
ワードプレス内に以下の構成
lp001
|--css
|--images
|--js
|-index.html
wp-admin
wp-content
wp-include
ソースコード
count-ajax.js
js
1'use strict'; 2 3$(function() { 4 var maxCount = 3 5 var ajaxurl = 'http://localhost:8000/wp-admin/admin-ajax.php'; 6 var todayForm = new Date(); 7 var y = todayForm.getFullYear(); 8 var m = ("00" + (todayForm.getMonth() + 1)).slice(-2); 9 var d = ("00" + todayForm.getDate()).slice(-2); 10 var requestDateForm = y + '/' + m + '/' + d; 11 $.ajax({ 12 type: 'GET', 13 url: ajaxurl, 14 processData: false, 15 contentType: false, 16 data : { 17 'action': 'getTodayCount', 18 'today' : todayForm, 19 }, 20 dataType: "json", 21 success : function(response) { 22 var currentCount = maxCount - response.length; 23 $(".count").text(maxCount); 24 console.log(response); 25 }, 26 error : function(error) { 27 console.log(error); 28 } 29 // }).then(function (response) { 30 31 // }).fail(function (error) { 32 // console.log(error); 33 }); 34 35 // $(".count").text(maxCount); 36 $("#confirmbtn").on("click", function() { 37 event.preventDefault(); 38 39 var fd = new FormData(); 40 fd.append('action', 'ajaxtest'); 41 42 // ajax通信 43 $.ajax({ 44 type: 'POST', 45 url: ajaxurl, 46 data: fd, 47 processData: false, 48 contentType: false, 49 50 // 成功時 51 success : function(response) { 52 console.log(response); 53 }, 54 55 // 失敗時 56 error: function(errorResponse) { 57 console.log(errorResponse); 58 } 59 }); 60 }) 61});
functions.php
PHP
1global $wpdb; 2function getTodayCount($db) { 3 $request = $_GET['today']; 4 $now = date("Y/m/d"); 5 $sql = $db->prepare('select count(id) from wp_db_counts where regist_day = %s',$now); 6 $results = $db->get_results($sql); 7 echo $results; 8 die(); 9 return $results; 10} 11add_action('wp_ajax_getTodayCount', 'getTodayCount'); 12add_action('wp_ajax_nopriv_getTodayCount', 'getTodayCount');
試したこと
・wordpress 400エラーでぐぐる。
・wp-admin-ajax 400で検索
あなたの回答
tips
プレビュー