$http post i cors. Jak to pogodzic.

0

Czesc wstawilem swoja plikacje i mam problem z corsem przy wysylaniu zadan post. Get ladnie odbiera dane, ale post nie dziala i wyskakuje kod bledu 500. A tak wyglada backend:

 
    $response->headers->set('Access-Control-Allow-Origin', 'example.com');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, DELETE, PUT');

A angularowy post wyglada tak:

        $http.post(apiConst.apiurl+'/auth',{login:user.login,pass:user.pass}).success(function(response){
            deferred.resolve(response)
          }).error(function(err){
            deferred.reject(err)
          });
 

Bylbym wdzieczny za pomoc!

0

Przepraszam. 405.

0

Ale 405 nie ma związku z CORS. 405 jest zwracane, bo backend nie przyjmuje tam POST, niezależnie skąd go wyślesz.

0

Dziwne bo adres '/auth' jest POSTEM w backendzie..

0

Z tego co wyczytalem to jest to zwiazane z cors, tylko ze nadal nie wiem jak to ugryzc.

0

To przeglądarka blokuje requesty nie pasujące do CORS, nie backend. Backend nie ma jak tego sprawdzić :) Szybki temat: Wejdź na dowolną stronę, w konsoli zrób sobie zapytanie POST do www.onet.pl - nie zobaczysz tam żadnego błędu zapytania, w konsoli zobaczysz info o zablokowaniu żądania cross-origin. Na stronie z jQuery najprościej, bo tylko $.post('http://www.onet.pl'); wystarczy.

0

To ja juz nie ogarniam o co tutaj chodzi. Ogolnie jak podlaczylem dwie stronki na hosting. Api i angularowe smieci, to ok byl cross origin bo na stronie startowej juz robilem requesty get do api i owszem byl komunikat, tak jak wspomniales o corsach, ktory potem dodalem do backendu i get zadzialal prawidlowo, wszystkie gety dzialaja ok na kazdej podstronie, tudziez widoku bo to angular. Ale post nie chce dzaialac za cholere i nie wiem co go tam boli. Ogolnie dostaje request method OPTIONS wiec to tez moze cos znaczy.

0

Nowa poszlaka, gdzies znalazlem taka odpowiedz i dziala:

        $http({
          url: apiConst.apiurl+'/auth',
          method: "POST",
          data: $.param({
            login: user.login,
            pass:user.pass
          }),
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
          }
        })
 

Z tym ze wolalbym zeby to byly jsony, a teraz jesi zmienei content-type no to znow method not allowed. Kolejne WTF.

1 użytkowników online, w tym zalogowanych: 0, gości: 1