Ошибка SSR Laravel Inertia.js: «Все запросы Inertia должны получить действительный ответ Inertia»Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка SSR Laravel Inertia.js: «Все запросы Inertia должны получить действительный ответ Inertia»

Сообщение Anonymous »

Я пытаюсь развернуть приложение Laravel, используя Inertia.js с рендерингом на стороне сервера (SSR). Однако при переходе между ссылками возникает следующая ошибка:

Код: Выделить всё

All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.
Моя установка:
  • Ссылка на компонент Vue:

    Код: Выделить всё

        [*]
    Annonser
    
    
    (Я импортировал ссылку из @inertiajs/vue3.)

    Определение маршрута:

Код: Выделить всё

  return Inertia::render('Welcome');
Сведения о сервере:
  • Ubuntu 24.10
  • Nginx 1.26.0< /li>
    PHP 8.3.11
  • Код: Выделить всё

    php artisan inertia:start-ssr
    запущен и активен.
Наблюдения:
  • TCPDump:
Когда я использую tcpdump на порту 13714, я вижу трафик по первоначальному запросу. Но когда я пытаюсь перемещаться по приложению, трафик на этом порту не отображается, и возникает ошибка.
  • Причуда конфигурации Nginx:< /li>
Если я изменю свою конфигурацию Nginx так, чтобы блок сервера по умолчанию (с использованием IP-адреса xxx.xxx.xxx.xxx) указывал на laravel/public вместо домена name (example.com), навигация работает как положено. Но tcpdump показывает трафик только по первоначальному запросу.
  • Запрос Curl:
    < /ol>
    Когда я запускаю curl 127.0.0.1:13714, я получаю:

    Код: Выделить всё

        {"status":"NOT_FOUND","timestamp":1733846743327}
    

    Код: Выделить всё

    php artisan inertia:start-ssr
    запущен.
  • Поведение JavaScript:
Когда я отключаю JavaScript, контент полностью исчезает.
Возможная проблема:
Может ли это быть связано с неправильная конфигурация имени хоста в настройке SSR? Я убедился, что заголовок X-Inertia присутствует, но до сих пор не могу понять, почему он работает только с конфигурацией на основе IP.
Любая помощь или информация Буду очень признателен за решение этой проблемы!
ОБНОВЛЕНИЕ: Когда я отключаю JavaScript для своего сайта, я теперь получаю полную перезагрузку страницы. Не знаю, произошло ли это из-за того, что я изменил app.js
с

Код: Выделить всё

return createApp({ render: () => h(App, props) })
в

Код: Выделить всё

return createSSRApp({ render: () => h(App, props) })
Это согласно https://inertiajs.com/server-side-rendering. Но у 99% пользователей включен JavaScript, поэтому ошибка сохраняется.
Когда запущен php artisan inertia:start-ssr и JavaScript отключен, все ссылки кажутся работать. Но когда JavaScript включен, я все равно получаю сообщение об ошибке SSR Laravel Inertia.js: «Все запросы Inertia должны получать действительный ответ Inertia». В чем причина?

Подробнее здесь: https://stackoverflow.com/questions/792 ... id-inertia
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»