Heim  >  Fragen und Antworten  >  Hauptteil

Die Javascript-Ajax-Schaltfläche funktioniert unter http://127.0.0.1 einwandfrei, erhält jedoch eine Fehlermeldung und schlägt unter http://localhost:8888/xxx/public fehl

Ich arbeite mit Laravel 10 PHP 8.10 und hier funktioniert die Javascript-Ajax-Schaltfläche einwandfrei auf dem PHP-Artisan-Server http://127.0.0.1, aber bei **MAMP PRO** (localhost:8888) wird eine Fehlermeldung angezeigt (Fehler bei der Verarbeitung der Anforderung) und funktioniert nicht mit der URL http://localhost:8888/xxx/public. Das Folgende ist ein Ausschnitt aus HTML und JS:

Benötigen Sie Hilfe bei der Lösung dieses Problems.

**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>

Benötigen Sie Hilfe bei der Lösung dieses Problems.

P粉718165540P粉718165540394 Tage vor703

Antworte allen(1)Ich werde antworten

  • P粉384366923

    P粉3843669232023-09-22 15:29:36

    您的MAMP Apache端口是否确实设置为8888端口而不是80端口?

    我已经做过几次(测试使用8888端口,部署使用80端口),并且将Ajax调用保留在目标为localhost而不是localhost:8888或者反过来。

    或者,您可能需要在Ajax调用中明确指定8888端口,例如:

    url: 'http://localhost:8888/admin/update-socialmedia-status'

    希望这有所帮助?

    Antwort
    0
  • StornierenAntwort