2016-12-21 2 views
0

Я создаю гибридное приложение с угловыми и пытаюсь вызвать службу из внешнего источника. но когда я сделать вызов к URL я получаю сообщение об ошибкеНе удалось загрузить данные с удаленных json

XMLHttpRequest cannot load https:XXXX/xxx.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 

вот мой код

app.controller('overview', function($scope, $http) { 
    $http({ 
     method : "GET", 
     url : "https://ysaf.XXXX.yourcxxxxx/resource.json" 
    }).then(function appSucces(response) { 
     $scope.resources = response.data; 
    }, function appError(response) { 
     $scope.resources = response.statusText; 
    }); 
}); 

, если я называю локальный файл .json я не получаю какие-либо ошибки, но только тогда, когда я называю внешний api, я получаю эту ошибку.

Есть ли что-нибудь, что я делаю неправильно в этом коде?

+0

вам необходимо внести изменения в служебный код, чтобы разрешать запросы с кросс-началом. Если это невозможно, вы можете позвонить службе с вашего собственного сервера (у которого не было бы проблем с перекрестным происхождением), а затем передать json в ваше приложение с вашего сервера – gaurav5430

+0

, это должно быть обработкой на стороне сервера, но вы можете попробовать это один http://stackoverflow.com/a/33662315/5621827 на вашей стороне – jitender

+1

Возможный дубликат [Как работает заголовок Access-Control-Allow-Origin?] (http://stackoverflow.com/questions/10636611/how- это-контроля доступа-Allow-Origin заголовка работа) –

ответ

0

Access-Control-Allow-Origin настроен на ответ от сервера, это не запрос клиента, чтобы клиенты из разных источников имели доступ к ответу.

В этом случае https://ysaf.XXXX.yourcxxxxx/resource.json не позволяет вашему источнику получить доступ к ответу. Поэтому вы не можете его прочитать.

0

Добавьте необходимые заголовки, такие как Access-Control-Allow-Origin: *.

Вопрос, с которым вы столкнулись, является проблемой CORS. CORS - Cross Origin Resource Sharing.

CORS проблема возникает в следующих случаях

1) Если нас abc.com и доступ к xyz.com (другой домен)

2) Если мы находимся в http://localhost:8080/myapplication и доступа http://localhost:9080/anotherapplication (разные порты)

Смежные вопросы