Callback NUI nigdy się nie odpala
Przycisk w menu skryptu nic nie robi po kliknięciu i zwykle w konsoli też nic się nie pojawia.
Zrób najpierw to
Zgłoś to sprzedawcy. Nic w twojej konfiguracji tego nie powoduje.
Co to znaczy
Strona wysłała zapytanie do klienta i nic się nie stało. Zwykle po żadnej stronie nie ma żadnego błędu, i to właśnie jest w tym frustrujące: przycisk po prostu nic nie robi.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
URL nie zgadza się z nazwą zasobu
fetch('https://my-script/buy')musi używać DOKŁADNEJ nazwy zasobu. Myślnik zamiast podkreślenia pada po cichu. - 2
Nazwa callbacku się nie zgadza
RegisterNUICallback('buy', ...)odpowiada na.../buy, a nie na.../Buy. - 3
cb nigdy nie jest wołane
Strona w Lua musi wywołać
cb(...). Bez tego obietnica w przeglądarce nigdy się nie rozwiązuje, więc interfejs wisi, mimo że handler się wykonał. - 4
Fetch nie ma ciała POST
NUI we FiveM oczekuje POST-a. GET albo POST bez ciała może się nie zrutować.
- 5
Interfejs nie ma fokusu
Callbacki działają bez fokusu, ale KLIKNIĘCIE, które ma je wywołać, nie dociera do strony. To
SetNUIFocus(true, true)pozwala kursorowi wejść w interakcję.
Jak poznać, który jest twój
Otwórz narzędzia deweloperskie NUI i patrz na zakładkę sieci: czy żądanie w ogóle wychodzi? Jeśli nie, chodzi o stronę albo o fokus. Jeśli wychodzi i wisi, handler nie woła cb. Jeśli daje 404, nazwa jest zła.
Gdzie szukać
URL w fetchu na stronie i nazwa w RegisterNUICallback w skrypcie klienckim. Muszą się zgadzać dokładnie.
Jak to naprawić
-- client
RegisterNUICallback('buy', function(data, cb)
-- zrób swoje
cb({ ok = true }) -- ZAWSZE odpowiadaj, nawet przy niepowodzeniu
end)
// strona
await fetch(`https://${GetParentResourceName()}/buy`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ item: 'water' }),
})Wciąż utknąłeś na własnym kodzie?
Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.
bug_reportOtwórz Server FixerDla tego rodzaju błędu Loading Screen Creator buduje NUI działające bez ręcznie pisanego HTML-a.