teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

参考URL

2021/09/05 03:03

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,7 @@
10
10
  ### 参考にしたサイト
11
11
  - [https://loop-never-ends.com/laravel-ajax-call-controller-method/](https://loop-never-ends.com/laravel-ajax-call-controller-method/)
12
12
  - [https://mintaku-blog.net/laravel-ajax/](https://mintaku-blog.net/laravel-ajax/)
13
+ - [https://noauto-nolife.com/post/laravel-ajax/](https://noauto-nolife.com/post/laravel-ajax/)
13
14
 
14
15
  ### Laravelのバージョン
15
16
  Laravel Framework 8.54.0

5

調査が進んだので、質問タイトルと内容を絞った形に変更した。

2021/09/05 03:03

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
@@ -1,1 +1,1 @@
1
- ajaxを使って、削除ボタンを押した時に、非同期ブルの行削除したい。
1
+ ajaxでコントロラー実行したいが、「Unexpected token < in JSON at position 0」というエラーが出る
body CHANGED
@@ -1,12 +1,12 @@
1
1
  ### やりたいこと
2
- 削除ボタンを押して、押した削除ボタンある行(非同期で)削除したいです。
2
+ aljaxでスクコトローラーdelete関数実行したいです。
3
-
4
- (コントロラー削除処理はあとで自分で書こうと思いますので、とりあえずタスクコントローラー
3
+ しかし、Chromeの開発者ツのコンルに、「Unexpected token < in JSON at position 0」というエラーが出る。
5
- delete関数にidを渡すところまで実装したいです。)
6
4
  ### 試したこと
5
+ - 渡したい値のidがjson形式と認識されていないのかと思い、JSON.stringify()をつけてみたが、同じエラーが出た。
6
+ - <head>にcsrf-tokenを書いた。
7
+ ```ここに言語を入力
7
- 削除ボタンを押したときに、ajaxのポスト通信で/delete/{id}'にidを渡して、タスクコントローラーのdelete関数を実行しようとしました。
8
+ <meta name="csrf-token" content="{{ csrf_token() }}">
8
- しかしサイトを参考に下のように実装したのですが、ボタンを押しても何の反応もありません。
9
- 開発者ツールにエラーもありません。どうすれば実装できますでしょうか?
9
+ ```
10
10
  ### 参考にしたサイト
11
11
  - [https://loop-never-ends.com/laravel-ajax-call-controller-method/](https://loop-never-ends.com/laravel-ajax-call-controller-method/)
12
12
  - [https://mintaku-blog.net/laravel-ajax/](https://mintaku-blog.net/laravel-ajax/)
@@ -15,31 +15,20 @@
15
15
  Laravel Framework 8.54.0
16
16
  ### ビュー
17
17
  ```ここに言語を入力
18
- <h2>計測結果</h2>
19
- <table class="table">
20
- <thead>
21
- <tr>
22
- <th scope="col">#</th>
23
- <th scope="col">タスク内容</th>
24
- <th scope="col">経過時間</th>
25
- <th scope="col">最終更新日</th>
26
- <th scope="col">編集・削除</th>
27
- </tr>
28
- </thead>
29
18
  <tbody>
30
19
  @foreach($tasks as $task)
31
- <tr id="content">
20
+ <tr>
32
- <td id="id">{{ $task->id }}</td>
21
+ <td>{{ $task->id }}</td>
33
22
  <td>{{ $task->task_name }}</td>
34
23
  <td>{{ $task->total_time }}</td>
35
24
  <td>{{ $task->updated_at }}</td>
36
- <td><meta name="csrf-token" content="{{ csrf_token() }}">          --←参考サイトを開発者ツールで見ると、これが入ってて記事を読む限り必要そうなので入れた
25
+ <td>
37
- <button type="button" id="edit" class="btn btn-success">編集</button>
26
+ <button type="button" id="edit" class="btn btn-success">編集</button>
38
- <button type="button" id="delete" class="btn btn-danger">削除</button></td> --←削除ボタン
27
+ <button type="button" id="delete" class="btn btn-danger">削除</button>
28
+ </td>
39
29
  </tr>
40
30
  @endforeach
41
31
  </tbody>
42
- </table>
43
32
 
44
33
  --省略--
45
34
 
@@ -47,23 +36,30 @@
47
36
  $('#delete').click(function() {
48
37
  // コントローラーのメソッドに渡す値
49
38
  var id = 1;
50
- // alert('OK!');
39
+
51
40
  $.ajax({
52
41
  headers: {
53
42
  // POSTのときはトークンの記述がないと"419 (unknown status)"になるので注意
54
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr("content")
43
+ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
55
44
  },
56
45
  // POSTだけではなく、GETのメソッドも呼び出せる
57
46
  type: 'POST',
58
47
  // ルーティングで設定したURL
59
- url: '/delete/'+ id, // 引数も渡せる
48
+ url:'/delete/' + id,
60
49
  dataType: 'json',
50
+ // scriptCharset : "UTF-8",
51
+ contentType: 'application/json',
52
+ data:id,
53
+
61
54
  }).done(function(results) {
62
55
  // 成功したときのコールバック
56
+ console.log('1');
63
57
  }).fail(function(jqXHR, textStatus, errorThrown) {
64
58
  // 失敗したときのコールバック
59
+ console.log('2'+errorThrown);
65
60
  }).always(function() {
66
61
  // 成否に関わらず実行されるコールバック
62
+ console.log('3');
67
63
  });
68
64
  })
69
65
  });

4

参考にしたサイトの変更

2021/09/05 00:49

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,7 @@
9
9
  開発者ツールにエラーもありません。どうすれば実装できますでしょうか?
10
10
  ### 参考にしたサイト
11
11
  - [https://loop-never-ends.com/laravel-ajax-call-controller-method/](https://loop-never-ends.com/laravel-ajax-call-controller-method/)
12
- - [https://sota1235.hatenablog.com/entry/2015/10/11/213000](https://sota1235.hatenablog.com/entry/2015/10/11/213000)
12
+ - [https://mintaku-blog.net/laravel-ajax/](https://mintaku-blog.net/laravel-ajax/)
13
13
 
14
14
  ### Laravelのバージョン
15
15
  Laravel Framework 8.54.0

3

参考にしたサイトの追加

2021/09/04 16:17

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,8 @@
8
8
  しかしサイトを参考に下のように実装したのですが、ボタンを押しても何の反応もありません。
9
9
  開発者ツールにエラーもありません。どうすれば実装できますでしょうか?
10
10
  ### 参考にしたサイト
11
- [https://loop-never-ends.com/laravel-ajax-call-controller-method/](https://loop-never-ends.com/laravel-ajax-call-controller-method/)
11
+ - [https://loop-never-ends.com/laravel-ajax-call-controller-method/](https://loop-never-ends.com/laravel-ajax-call-controller-method/)
12
+ - [https://sota1235.hatenablog.com/entry/2015/10/11/213000](https://sota1235.hatenablog.com/entry/2015/10/11/213000)
12
13
 
13
14
  ### Laravelのバージョン
14
15
  Laravel Framework 8.54.0

2

目標の明確化のため

2021/09/04 16:14

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,8 @@
1
1
  ### やりたいこと
2
2
  削除ボタンを押して、押した削除ボタンのある行を(非同期で)削除したいです。
3
+
4
+ (コントローラーの削除処理はあとで自分で書こうと思いますので、とりあえずタスクコントローラーの
5
+ delete関数にidを渡すところまで実装したいです。)
3
6
  ### 試したこと
4
7
  削除ボタンを押したときに、ajaxのポスト通信で/delete/{id}'にidを渡して、タスクコントローラーのdelete関数を実行しようとしました。
5
8
  しかしサイトを参考に下のように実装したのですが、ボタンを押しても何の反応もありません。

1

タグの追加

2021/09/04 15:16

投稿

kerokeroryu2631
kerokeroryu2631

スコア14

title CHANGED
File without changes
body CHANGED
File without changes