Angular CLI + API Wamp (blocked by CORS policy)

Pozdrav pokušavam na localhostu napraviti Post API upit sa angulara na Wamp

Angular aplikacija u development modu radi na http://localhost:4200/ dok je wamp po defaultu na portu 80.

šaljem post upit i nikako. Uvijek sam blokiran pa ne mogu dobiti response.

… has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.

probao sam ovo https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

a probao sam i ovo:

probao sam i promijenitri portove na wamp apache serveru… I ništa.

Zna li netko što radim krivo?

Glupo pitanje: jesi li restartov’o WAMP?
Prvi komentar kaže da je mor’o restartovati više puta dok mu nije proradilo.

jesam više puta…

Jesi li prob’o napraviti request iz Postman-a - radi li to?

nisam znao da sa postmanom mogu slati request na local… probat ću to sada

Jesi li mu postavio Headre za request. Tipa
Header Allow-Origin: *

Nisam siguran jel je tocno tako, ali u tom smislu je.

1 Like

jesam to sam postavio u httpd.conf od apachea ovako

<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin: *

i

preko postmana radi, ili je problem mislim do browsera ili angulara.

Ako radiš sa portovima 80 i 4200, šta je ovaj treći port 3000 (po default’u bi bio nodejs server)?

To je bilo za test, promijenio sam port apachea za test na 8080 pa na 3000 ali nije imalo svrhu pa sam vratio na 80

I vidis li taj header kad pogledas Request headers u Network tabu ?

Pogledaj access log i error log na serveru. Nisam siguran u tačnu lokaciju u WAMP-u.

Možda je ovde.

hmm…

u error logu apachea nema ništa ali osim toga postoji log access koji bilježi upite.

Vidim sada da su upiti koje šaljem iz angulara OPTIONS umjesto post… hmmm
moguće da je to greška.

OPTIONS je pre-flight request koji browser salje upravo radi CORS-a.

hmmm znači da je to ok?

Da, taj OPTION pre-flight request je sasvim legit stvar.

Probaj poslati jos i ove headere sa servera

Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type
1 Like

image

ooo yes! tnx! dodao sam i izgleda da sada radi :slight_smile: nema više greške u konzoli, moram posložiti JSON request i response kako treba pa ću testirati.

Izgleda radi dobro kada je samo response i ne pošaljem ništa.

Ne zam što točno PHP datoteka dobije kada šaljem iz angulara, tj kako objekt koji šaljem treba izgledati. probao sam sve i svašta

u php-u postavim i pošaljem POST sa propertijem Request i ništa.

image

a ako json stavim ivan scopea isset($_POST[‘Request’] onda mi ga vrati uredno.

Iz angulara šaljem ovo:

a dobijem samo:

image

probao sam i JSON.stringify