Czy fetch nie obsługuje zmiennych dla body?
Próbuje wysłać dane które znajdują się w zmiennej przez fetch, dodaje zmienną do body a serwer nic nie dostaje.
//Dane znajdują się w zmiennej.

przykład:
request = async (body=null, method, param=null) => {
console.log(body, method, param)
// res: msgid=5ef4fb863e4e95294c5fd155&action=yes POST null

if (method == 'POST' || method == 'PATCH') {
const data = await fetch('http://localhost:3000/api/data', {
headers: {
'Accept': 'application/x-www-form-urlencoded',
'Content-Type': 'application/x-www-form-urlencoded'
},
credentials: 'include',
Czy ja coś źle robię, czy fetch() z Content-Type application/json nie wysyła POSTem credentials: 'include'?
Ale bez problemu przesyła na serwer cookies jeżeli Content-Type jest ustawiony na application/x-www-form-urlencoded. Hmm?

Czy to jakieś zabezpieczenie o którym nie wiem?

#programowanie #javascript #fetch
@Loperamid: A tutaj mój cors na serwerze, przyznaj, że ciekawe rozwiązanie..

Nie mogę zrobić Access-Control-Allow-Origin * bo wtedy nie działa credentials, to normalne, a potrzebuje kilka domen więc odpytuje jaka to domena i ustawiam corsa :D

/* CORS */
app.use((req, res, next) => {
var origin = req.headers.origin;
if (config.allowedHostname.includes(origin)) {
res.setHeader('Access-Control-Allow-Origin', origin);
}
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
res.header('Access-Control-Allow-Credentials', true);
return next();
});
  • Odpowiedz
Korzystam z API i chcę zrobić żądanie ajaxowe za pomocą fetch api. API te używa protokół HTTP, a moja apka jest hostowana na Githubie i wiadomo używa HTTPS. Czy CORS rozwiąże problem włączając go i ustawiając nagłówek access control w żądaniu? Jestem newbie w tym..
#frontend #fetch #ajax #javascript
  • Odpowiedz