butang ajax javascript berfungsi dengan baik pada http://127.0.0.1 tetapi mendapat ralat dan gagal pada http://localhost:8888/xxx/public
P粉718165540
P粉718165540 2023-09-21 20:47:40
0
1
758

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
                      &nbsp;&nbsp;
                      <a style='color:#007bff;' href="{{ url('admin/social-media/edit/'.$row->id) }}"><i class="fas fa-edit"></i></a>
                        &nbsp;&nbsp;
                        <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>
                        &nbsp;&nbsp;
@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.

P粉718165540
P粉718165540

membalas semua(1)
P粉384366923

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?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan