質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

0回答

2388閲覧

WordPressのAjax通信で400エラーが帰ってきます。

kamedamorio

総合スコア6

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2020/07/06 14:08

編集2020/07/06 14:11

## 概要
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で検索

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tabuu

2020/07/06 23:22

>wpxサーバにあるランディングページを修正しているのですが、 >var ajaxurl = 'http://localhost:8000/wp-admin/admin-ajax.php'; ajaxurlがlocalhostですが合っていますか? >type: 'GET', POSTでなくて大丈夫ですか? >function getTodayCount($db) { 関数内でdie()していますが大丈夫ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問