XMLHttpRequest не может загружаться в angularjs

Я учусь на этом сайт.

Я использую это для приложения Android, чтобы получить данные PHP и показать приложение.

Когда я запускаю веб-службу в AngularJS, Google Chrome выдает эту ошибку в консоли:

XMLHttpRequest не может загрузить http://192.168.1.10/android_connect/JsonReturn.php. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, Origin 'null' не имеет доступа.

Это мой код JavaScript:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script>function GetUsers($scope, $http) {
    // this is where the JSON from api.php is consumed
    $http.get('http://192.168.1.10/android_connect/JsonReturn.php').
        success(function(data) {
            // here the data from the api is assigned to a variable named users
            $scope.users = data;
        });
}</script>

Затем я устанавливаю HTML-код:

<div ng-controller="GetUsers">

<table>
<thead><tr><th>ID</th><th>Name</th><th>Email</th></tr></thead>
<tbody>
<tr ng-repeat="user in users"><td>{{user.id}}</td><td>{{ user.name }}</td><td>{{user.email}}</td></tr>
</tbody>
</tfoot></tfoot>
</table>

</div>

Я пробовал все возможные решения, опубликованные, но, похоже, это не решает проблему в моем коде.


person Deepak Acharya    schedule 17.01.2015    source источник
comment
Я думаю, что ошибка в значительной степени говорит сама за себя Нет 'Access-Control-Allow-Origin' header is present on the requested resource. Access-Control-Allow-Origin должен быть в вашем заголовке   -  person ilgaar    schedule 17.01.2015
comment
я добавляю это, но не работает   -  person Deepak Acharya    schedule 18.01.2015


Ответы (2)


Вы пытаетесь сделать междоменный запрос, используя XMLHttpRequest. Чтобы это работало, веб-сервер, отвечающий на запрос, должен иметь заголовок ответа Access-Control-Allow-Origin, установленный на *.

person jrossi    schedule 17.01.2015
comment
Добавьте этот header('Access-Control-Allow-Origin: *'); в свой JsonReturn.php - person Arvind; 21.01.2015

В качестве альтернативы, обслуживайте страницу Angular с того же сервера, на котором размещен ваш API. Тогда у вас нет междоменного запроса.

person PhiLho    schedule 09.09.2015