Wdrożyłem mobilną aplikację Cordova (od innego dewelopera zewnętrznego) do lokalnego środowiska internetowego, które pracuje niezgodne z resttowanym systemem API, który opracowałem.

Próbuję się zalogować, przekazuje prośbę JSON do mojego interfejsu API z nazwą użytkownika i hasłem oraz zasadniczo zwraca odpowiedź.

W Mozilli FireFore otrzymuję następującą odpowiedź w dzienniku konsoli: -

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://mystickers.local/myStickersApi/V1/appLogin.
This can be fixed by moving the resource to the same domain or enabling CORS.

Czy ktoś może przedstawić najlepszy / najprostszy sposób, aby umożliwić udostępnianie żądania pochodzenia transakcji, mój interfejs API jest opracowywany za pomocą yii 1.x.x (E.G PHP), a aplikacja mobilna jest opracowywana za pomocą ramy Cordova (kombinacja HTML5 / CSS i JavaScript).

3
Zabs 15 sierpień 2014, 15:31

2 odpowiedzi

Najlepsza odpowiedź

Dodałem następujący blok kodu do mojego interfejsu API tuż przed echem zawartości JSON

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
    header("Access-Control-Allow-Headers: Authorization");

Wydaje się teraz pracować :)

2
Zabs 15 sierpień 2014, 13:29
 <?php
 header("Access-Control-Allow-Origin: *");
0
Daan 15 sierpień 2014, 11:32