2016-02-15 11 views
9

Pracuję nad aplikacją Angular JS, która rozmawia z serwisem PHP/Apache.Metoda PUT nie jest dozwolona przez metody kontroli dostępu w odpowiedzi wstępnej

Dotychczas zostało działa dobrze dla POST i GET, ale dla PUT Mam następujący błąd

Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.

Ja testowałem API z Postman i to działa dobrze

Masz pomysł na rozwiązanie mojego problemu? Dzięki

Należy pamiętać, że serwer API, Apache posiada następujące config już

Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept" 
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" 
Options All 
AllowOverride All 
Allow from all 

i Chrome ma ten nagłówek odpowiedzi

HTTP/1.1 200 OK 
Date: Mon, 15 Feb 2016 02:52:56 GMT 
Server: Apache/2.4.7 (Ubuntu) 
X-Powered-By: PHP/5.5.9-1ubuntu4.14 
Allow: GET,HEAD,PUT,PATCH,DELETE 
Cache-Control: no-cache 
Set-Cookie: laravel_session=eyJpdiI6IldvM3Z5eUpKcUI5Q0RXam5UN283TEE9PSIsInZhbHVlIjoiV3FnTVpUcFliWjZvczFrM2VuYXpBamI5NmIwR24rdThPWGRuMUZjbjd5K0I2N3F1REp4ZFJVc3U3QnhCZmxmZ0ZONDU4SEVtWm42SUVEWmJhRmF6M1E9PSIsIm1hYyI6ImMzOTVlNDZhZmNjYWNlM2I1N2FjYjQ4N2FhZDc5ZWY2MWJhYTdiNDBlMWExMGJkYzczYzE1MTczMzAyYzVkMjEifQ%3D%3D; expires=Mon, 15-Feb-2016 04:52:56 GMT; Max-Age=7200; path=/; httponly 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept 
Content-Length: 0 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html; charset=UTF-8 
+0

czy możesz dołączyć wszystkie nagłówki dla żądania i odpowiedzi oprócz konfiguracji serwera? – kmanzana

+0

Przepraszam, ta kwestia została już od jakiegoś czasu rozwiązana. To właściwie głupi błąd. Jeśli się nie mylę, to dlatego, że strona API zawierała literówkę dotyczącą parametrów, ale jakoś Chrome właśnie opublikował ten błąd: –

Odpowiedz

6

Przepraszamy, ta sprawa była od rozwiązany przez pewien czas teraz. To właściwie głupi błąd. Jeśli się nie mylę to dlatego, że strona API nastąpiła literówka na parametry

Wstępnie komunikat lot na Chrome było zapewne mylące

Sprawdź swoje zmienne, jeśli masz podobny błąd jak ja

+0

W mojej sytuacji jest taki sam, miałem kod TypeError w kodzie, więc serwer również nie działa poprawnie. . W tym przypadku komunikat o błędzie chrome jest mylący. –

Powiązane problemy