• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pusty response od serwera

Cloud VPS
0 głosów
1,106 wizyt
pytanie zadane 4 listopada 2022 w C# przez DzikieHarce Użytkownik (690 p.)
zmienione kategorie 6 listopada 2022 przez ScriptyChris

Stworzyłam backend w Asp.NetCore, w nim kilka endpointów, również taki, do rejestracji użytkownika. Endpoint prawdopodobnie działa, testowałam w postmanie i udało mi się stworzyć użytkownika, wszystko śmiga. Problem zaczął się, gdy stworzyłam w Reacie formularz i połączyłam się z backendem. Dostaję pusty response, jakby strona nie mogła połączyć się z serwerem. Sprawdzałam wiele razy adres, mam włączony serwer itp. i wszystko działa. Udało mi się ustalić, że wina prawdopodobnie leży po stronie certyfikacji, czyli Chrome nie chce połączyć się z bazą danych. Gdy tworzyłam backend, dostałam zapytanie o o certyfikat i wtedy "sama go sobie podpisałam", zmieniłam również adres na https. Projekt jest niekomercyjny, więc nie chcę kupować certyfikatu. Próbowałam też wyłączyć restrykcję w chromie za pomocą komendy 

--disable-web-security

Ale nadal mam ten response. Ponoć w chromie da się to jakoś wyłączyć w ustawieniach, ale nie wiem jak, ew. po stronie serwera ogarnąć certyfikat, choć też nie mam pojęcia jak. Pierwszy raz mierzę się z czymś takim i myślałam, że wystarczy, że automatycznie mi się podpisze.

1
komentarz 4 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)
Gdzie widzisz ten response - w devtoolsach? Próbowałaś sprawdzić na innej przeglądarce (np. Firefox)? Czy w konsoli przeglądarki są jakieś błędy?
komentarz 4 listopada 2022 przez Ehlert Ekspert (215,050 p.)
przeniesione 4 listopada 2022 przez ScriptyChris
Na jakim porcie odpalony jest backend?
komentarz 4 listopada 2022 przez Ehlert Ekspert (215,050 p.)
Może nie masz skonfigurowanych CORSów.
komentarz 4 listopada 2022 przez Wiciorny Ekspert (281,530 p.)
z tym, że jakby to był corse to request by przeszedl poprawnie natomiast zablokowany od strony backendu - bylby response, czesto nawet informujac o blednym origin, czy polityce CORS.
komentarz 5 listopada 2022 przez DzikieHarce Użytkownik (690 p.)

@ScriptyChris, Tak, response widze w devtoolsach, nie próbowałam nigdzie indziej, bo wolałabym, żeby to również działało na chromie.

Co do błędów:

komentarz 5 listopada 2022 przez DzikieHarce Użytkownik (690 p.)
Na porcie 5001
1
komentarz 5 listopada 2022 przez DzikieHarce Użytkownik (690 p.)
O nie, przepraszam, pustego responsa naprawiłam, dopisując s w https do adresu. Ale tak, chyba właśnie chodzi o corsy których nie umiem skonfigurować. Wybaczcie za zamieszanie.
komentarz 5 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)

nie próbowałam nigdzie indziej, bo wolałabym, żeby to również działało na chromie

@DzikieHarce, na marginesie (bo przyczyną problemu zdaje się być już wspomniany CORS) - czasem winna jest przeglądarka, więc dobrze jest sprawdzić czy na innej problem też występuje, bez względu na to, czy docelowo ma być używana ta czy inna.

komentarz 6 listopada 2022 przez DzikieHarce Użytkownik (690 p.)
W sumie racja, w takim razie sprawdzę

1 odpowiedź

+2 głosów
odpowiedź 4 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)
wybrane 7 listopada 2022 przez DzikieHarce
 
Najlepsza

Nie ma u Ciebie skofigurowanego CORS w backendzie .net!  Zbadaj temat koniecznie, na razie trzymaj tutaj tutorial co zrobić by wszystko działało (.NET 6):

program.cs

builder.Services.AddCors(options =>
{
	options.AddPolicy("MyOrigins", policy =>
	{
		policy.WithOrigins("https://localhost:5001").AllowAnyMethod().AllowAnyHeader();
	});
});
app.UseCors("MyOrigins");

twój każdy controller

[EnableCors("MyOrigins")]
public class BaseController : ControllerBase
{
//Absolutnie nie ma problemu by zrobić kontroler BaseController, dziedziczący po ControllerBase (tak jak obecnie każdy twój custom controller)
//I dziedziczyć w custom controllerach po BaseController zamiast ControllerBase.
//Inaczej nad definicją klasy każdego controllera musisz dodawać to EnableCors
}

 

Trzymaj mój projekt api który nadal się tworzy, jakby nadal były problemy kopiuj z niego:

https://github.com/koniecdev/EndPlanner/tree/main/EndPlanner

Pozdro!

komentarz 4 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)

Nie ma CORS w backendzie .net!

Chyba jednak jest https://enable-cors.org/server_aspnet.html

komentarz 5 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)
Ale mi chodziło że u koleżanki w projekcie nie ma XD

Przecież dosłownie napisałem jak go skonfigurować
komentarz 5 listopada 2022 przez DzikieHarce Użytkownik (690 p.)

@Artur Koniec, Wow, dzięki! Tak, to prawdopodobnie jest problem z corsem, którego właśnie nie potrafiłam sama skonfigurować ;P Wielki dzięki, dam znać jak mi poszło. Pierwszy raz łącżę swój fontend ze swoim backendem, o corsie wiem tyle co nic ;P

komentarz 6 listopada 2022 przez DzikieHarce Użytkownik (690 p.)

@Artur Koniec, spróbowałam robić jak radziłeś, w Startup.cs dodałam 

 services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy", policy =>
                {
                    policy.WithOrigins("https://localhost:5001").AllowAnyMethod().AllowAnyHeader();
                });
            });

i

app.UseCors("CorsPolicy");

A potem nad controllerem wpisałam:


    [Route("api/account")]
    [ApiController]
    [EnableCors("CorsPolicy")]
    public class AccountController : ControllerBase

I wywala wyjątek. Mam przechwytywanie wyjątków, więc wyrzuciło mi tyko kod 500 i wiadomość którą podałam w razie wypadku przechwycenia Exception.

Z tego co widziałam na filmikach yt, to oni czasami wpisują to ca mam w startupie do Controllera, choć znalazłam też takie, które robią to w Startupie albo Program.cs. Pewnie coś robię nie tak, jednak nie mam pojęcia co.

komentarz 6 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)

Understanding Middleware In ASP.NET Core

Upewnij się że w tej kolejności masz wklejonego app.usecors, z samego 500 ciężko powiedzieć, możesz wrzucić cały projekt na githuba, może znajdę problem

komentarz 6 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)
a, i projekt masz w .NET 6? czy w starszej wersji?
komentarz 6 listopada 2022 przez DzikieHarce Użytkownik (690 p.)

@Artur Koniec, Faktycznie, wpisywałam w losowej kolejności. Udało mi się pozbyć błędu, ale znów coś jest nie tak. Po stronie frontuendu bez zmian, jednak jak weszłam w stronkę, łopatologicznie pisząc, która wyskakuje po odpaleniu backendu, i potem weszłam w odpowiednią ścieżkę, to mam błąd 405, czyli jakbym była nieutoryzowana. Sprawdzałam na chromie i firefoxie, obie przeglądarki mają tak samo. Piszę w .NET 5

komentarz 6 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)
(przeniosłem temat do kategorii C#, bo widzę, że problem poszedł w stronę backendu w tym języku)
komentarz 8 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)
@DzikieHarce Hmmm. No to 405 będzie mi ciężko wywróżyć haha. Wrzuć mi cały projekt na githuba, pobawię się, jak znajdę to co nie gra to wyjaśnię co trzeba zrobić
komentarz 13 listopada 2022 przez DzikieHarce Użytkownik (690 p.)

Ok, udało mi się jakoś to załatwić. Wybacz, że nie skorzystam z oferty, bardzo zależało mi, żeby samej sobie z tym poradzić. Co zmieniłam? Nie do końca pamiętam, w szale wpisywania wszystkiego nieco mi to umknęło ale na pewno: do posta po stronie reacta dodałam nagłówki i zakomentowałam [EnableCors("CorsPolicy")]. Politykę corsową przeniosłam do useCors w Configure, o tak:

app.UseCors(builder => builder
                .WithOrigins("http://localhost:3000")
                .AllowAnyMethod()
                .AllowAnyHeader());

 

komentarz 13 listopada 2022 przez DzikieHarce Użytkownik (690 p.)
Jasne, dzięki!
komentarz 14 listopada 2022 przez Artur Koniec Gaduła (3,680 p.)

@DzikieHarce, Najważniejsze że działa, pozderki

komentarz 16 listopada 2022 przez DzikieHarce Użytkownik (690 p.)
To ja dziękuję, otrzymałam dużo dobrych podpowiedzi ;P

Podobne pytania

0 głosów
0 odpowiedzi 115 wizyt
pytanie zadane 5 maja 2020 w PHP przez tgv Użytkownik (890 p.)
0 głosów
1 odpowiedź 351 wizyt
pytanie zadane 16 czerwca 2017 w PHP przez dervil Gaduła (3,030 p.)
0 głosów
0 odpowiedzi 208 wizyt
pytanie zadane 15 września 2019 w Sieci komputerowe, internet przez Daniel Mazur Obywatel (1,160 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,909 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...