React, fetch zmienia odpowiedź z serwera.

React, fetch zmienia odpowiedź z serwera.
M0
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 2 godziny
  • Postów:367
0

Z serwera w .net core wysyłam odpowiedź z kodami błędu. Jednak kod błędu "PasswordToShort" react/fetch zmienia na "PasswordMismatch". Fidler oraz postman pokazują poprawną odpowiedź, zaś przeglądarka złą. Czy przy zapytaniu do serwera, powinienem ustawić jakąś opcje? Bo szczerze jestem skołowany, tym dlaczego tak się dzieje.

title

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:10 dni
  • Postów:644
1

React nie ma wbudowanej metody fetch chyba, więc korzystasz po prostu z fetch API przeglądarki tak? Niemożliwe jest, żeby samo fetch zmieniało Ci kod błędu, sprawdź dokładniej a na 100% znajdziesz problem u siebie w kodzie. Otwórz sobie zakładkę sieć i skopiuj żądanie jako cURL a następnie wklej je tutaj.

edytowany 1x, ostatnio: Markuz
M0
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 2 godziny
  • Postów:367
0

@Markuz: zamiast == było = i przypisywałem wartość, fakt mój błąd. Jednak ciekawi mnie jedno.

Kopiuj
console.log(res)
                    if (!res.succeeded) {
                        res.errors.map(x => {
                            if (x.code = "PasswordMismatch")
                                setMismatchPassword(false);
                        })
                    }

Najpierw mam wypisanie na konsole, a następnie przypisanie. Czy nie powinno to działać, tak, że najpierw wypisze mi poprawną zawartość i później dopiero zmieni?

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:10 dni
  • Postów:644
0

Nie widzę w powyższym kodzie zmiany, map bez return chyba przypisze Ci do errors tablicę wartości undefined. Jak pokażesz większy fragment to może będę wiedział o co chodzi, albo zaznaczysz o które przypisanie chodzi, przypisanie do x.code finalnie nic nie zrobi w tym kodzie złego (w sensie nie wpłynie na zawartość res), poza tym, że wykona się zawartość tego ifa zawsze.

edytowany 1x, ostatnio: Markuz
M0
x.code = "PasswordMismatch" to był problem właśnie, miało być x.code == "PasswordMismatch"
MA
ok, ale to x.code nie wpłynie na res, więc console log zawsze wyświetli dobrą res a chyba o to pytałeś
MA
albo wpłynie, bo to obiekt a w tablicy jest trzymana tylko referencja, tylko finalnie powinno zrobić z res tablice undefined
M0
Wpływa, zmieniłem na == jest dobrze, ale dziwi mnie, że najpierw powinno wyświetlić res poprawne, a później zmienić jego zawartość. Widocznie js/react jakoś tak działa

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.