大企業営業から未経験ITエンジニアを目指すブログ

アラサー大企業営業から未経験ITエンジニアを目指すブログ。日々学んだことを忘備録的に記します。

自分のエラーログ:jQuery

  for(var item in jqXHR.responseJSON.errors) {
alert(jqXHR.responseJSON.errors[item]);
}①属性のセレクタにシングルコーテーション''付け忘れる

$('input[name="price_without_tax1"]')

 

AjaxでLaravelにPOST通信したら 419 エラー

CSRF対策されていないのが原因。

bladeファイルに下記を書くだけではだめだった。

<meta name="csrf-token" content="{{ csrf_token() }}">

jsファイルに下記を書くこと。

$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

 

AjaxでLaravelにPOST通信したら 500エラー

いろいろ検索して$.postやめて$.ajaxにすることに。

やっていることは同じ。書き方が違うだけ。

※多分変更した意味はなかった。

$.ajax({
url: '/calculate',
type:'POST',
data: params,
dataType: 'json'
})
.done(function(data) {

//処理

}

③Controllerまでは行って変数タイプミスでエラー

→500番

④The GET method is not supported for this route. Supported methods: POST.

のエラー。

おそらくControllerの処理後、返ってくるメソッドがPOSTでなくGETになっている模様。

 

return json($data);

を↓に書き換え。

return response()->json($data);

→解決!

 

⑤返ってきたJSONデータをアラートに表示できない

(1)

.fail(function(data) {
   alert(console.log(data.responseText));

}

→コンソールには中身が出た!アラートにはundefinedとしか表示されない。

(2) HTMLテキストに表示してみる

HTML

<p id="result"></p>

JS

.fail(function(jqXHR) {
  $("#result").html(jqXHR.responseText);
});

→これならできた!

(3) 配列をアラートに表示する方法↓を参考にやってみる

https://www.sejuku.net/blog/29821

for(var item in jqXHR.responseText) {
  alert(jqXHR.responseText[item]);
}

→1文字ずつ表示される!笑 "m" "e" "s" "s" "a"... 何度もOK押させられる

(4) もう一個の方を展開してみる

for(var item in jqXHR.responseJSON) {
  alert(jqXHR.responseJSON[item]);
}

The given data is invalid

Object object

→惜しい!

(5) Objectを展開してみる

for(var item in jqXHR.responseJSON.errors) {
  alert(jqXHR.responseJSON.errors[item]);
}

→できた!!!

 

(6) ↑だとエラーの数だけOK押さないといけないから、すべてのエラーが一度に見れるようにする。

.fail(function(jqXHR) {
 var alertText = "";

 for(var item in jqXHR.responseJSON.errors) {
  alertText += jqXHR.responseJSON.errors[item] + "\n";
 }

 alert(alertText);
});

→できた!!!^^