Saya bekerja dengan laravel 10 php 8.10 dan di sini butang ajax javascript berfungsi dengan baik pada php artisan serve http://127.0.0.1 tetapi mendapat ralat pada **MAMP PRO** (localhost:8888) (ralat permintaan pemprosesan) dan tidak berfungsi pada url http://localhost:8888/xxx/public. Berikut ialah coretan html dan js:
Perlukan bantuan untuk menyelesaikan masalah ini.
**HTML** @if($row->soc_extra==1) <a class="updatesocialmediaStatus" id="socialmedia-{{ $row->id }}" socialmedia_id="{{ $row->id }}" href="javascript:void(0)"><i class="fas fa-toggle-on" soc-extra="Active"></i></a> @else <a class="updatesocialmediaStatus" id="page-{{ $row->id }}" socialmedia_id="{{ $row->id }}" style='color:#007bff;' style="color:gray" href="javascript:void(0)"><i class="fas fa-toggle-off" soc-extra="Inactive"></i></a> @endif <a style='color:#007bff;' href="{{ url('admin/social-media/edit/'.$row->id) }}"><i class="fas fa-edit"></i></a> <a style='color:#007bff;' class="confirmDelete" name="socialmedia" title="Delete socialmedia" href="javascript:void(0)" record="socialmedia" recordid="{{ $row->id }}" <?php /*href="{{ url('admin/delete-socialmedia/'.$row['id']) }}"*/ ?>><i class="fas fa-trash"></i></a> @endforeach **JS** <script> $(document).on("click", ".updatesocialmediaStatus", function(){ var soc_extra = $(this).children("i").attr("soc-extra"); var social_media_id = $(this).attr("socialmedia_id"); $.ajax({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, type: 'post', url: '/admin/update-socialmedia-status', data: {soc_extra: soc_extra, social_media_id: social_media_id}, success:function(resp){ if (resp['status'] == 0) { $("#socialmedia-" + social_media_id).html("<i class='fas fa-toggle-off' style='color:grey' soc-extra='Inactive'></i>"); } else if (resp['status'] == 1) { $("#socialmedia-" + social_media_id).html("<i class='fas fa-toggle-on' style='color:#007bff' soc-extra='Active'></i>"); } }, error:function(xhr, textStatus, errorThrown){ console.log(xhr.responseText); alert('在处理请求时出错。'); } }); }); </script>
Perlukan bantuan untuk menyelesaikan masalah ini.
Adakah port Apache MAMP anda sememangnya ditetapkan kepada port 8888 dan bukan port 80?
Saya telah melakukan ini beberapa kali (port 8888 untuk ujian, port 80 untuk penempatan) dan mengekalkan panggilan Ajax yang menyasarkan localhost dan bukannya localhost:8888 atau sebaliknya.
Sebagai alternatif, anda mungkin perlu menyatakan secara eksplisit port 8888 dalam panggilan Ajax, sebagai contoh:
url: 'http://localhost:8888/admin/update-socialmedia-status'
Semoga ini membantu?