2021年10月21日木曜日

Ajax post で WEB-API 呼び出そうとしたらパラメータが渡せなくて少し悩みました。

Javascriptのコード(抜粋)

	var params = [];
	params['date'] = '2021-10-21';
	var url = 'APIのURL';

	$.post({
	      type: 'POST', 
	      url: url,
	      dataType: 'json',
	      data: params,
	      cache: false,
	    }).done(function(response){
	        /*do someting*/
	    }).fail(function(XMLHttpRequest, textStatus, error){
	        /*do someting*/
	    }).always(function(data){
	        /*do someting*/
	    });

受け口となるAPIのコード(cakePHP3.x の controller)

    public function index() 
    {
        $date = $this->request->getData('date');
        ;//以下略

XAMPP+VS Code 環境でブレイクポイントを貼って $date 変数の中身を見ると
からっぽ!
なぜじゃぁぁぁぁ!。

ということで、小一時間悩みました。
わかる人にはすぐわかるのかもしれませんが、この何にも警告を出してくれないトラップは時間かかってしまうことがありますね~。


間違っているのは javascript 抜粋の1行目。

	var params = [];

ここです!

正しくは

	var params = {};

これだけ。 わすれないように、メモ。っと。