Hej wszystkim!
Napisałem prostą aplikację w react js, jest ona powiązana z backendem w asp.net core. Lokalnie na moim komputerze wszystko działa jak trzeba. Chcąc opublikować ją na swoim vps z debianem wysłałem aplikację asp.net na serwer uruchomiłem ją, nestatem sprawdziłem że nasłuchuje na porcie localhost 5000. W pliku Startup.cs konfig Cors wygląda następująco:
services.AddCors(options =>
{
options.AddPolicy("Polityka", builder =>
builder.AllowAnyMethod()
.AllowAnyHeader()
.AllowAnyOrigin()
);
});
//.......................
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors("Polityka");
//.................................................
Skompilowaną aplikację react js umieściłem na serwerze nginx i oczywiście po wpisaniu adresu w przegądarce strona działa.
Mój problem polega na tym że apka nie komunikuje się z z aplikacją asp.net. Cały ruch odbywa się po localhost w obrębie linuxa. Na stronie jest np. opcja "zaloguj się":
const submit = async e => {
e.preventDefault();
setLoading(true);
try {
const res = await axios.post('http://localhost:5000/api/account/login', {
Email: email,
Password: password
});
const decodeToken = jwt_decode(res.data);
const tab = [];
for (const i in decodeToken) {
tab.push(decodeToken[i]);
}
setAuth({
token: res.data,
role: tab[3]
});
Niestety coś blokuje komunikację między aplikacjami. Lokalnie na moim kompie wszystko działało jak trzeba, dopiero po wysłaniu na vps coś jest nie tak. Może kofiguracja nginx jest zła?
server {
listen 443 ssl default_server;
root /home/user/build;
index index.html
server_name jakis_user.pl
location / {
try_files $uri $uri/ =404;
}
}
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key ;
}
Pozdrawiam!!