Междоменный запрос $http AngularJS

У меня есть простой сайт, который я создаю с помощью AngularJS, который вызывает API для json-данных.

Однако я все же сталкиваюсь с проблемой возникновения перекрестного домена, чтобы разрешить запросы на междоменные запросы?

Ошибка:

XMLHttpRequest не может загрузить http://api.nestoria.co.uk/api?country=uk&pretty=1&action=search_listings&place_name=soho&encoding=json&listing_type=rent. В запрошенном ресурсе нет заголовка "Access-Control-Allow-Origin". Происхождение 'http://localhost', следовательно, не допускается.

  searchByPlaceName: function() { 
        var url = baseurl+'country=uk&pretty=1&action=search_listings&place_name=london'+encoding+type;
         return $http.get(url);
    }

Ответ 1

Кажется, что api.nestoria.co.uk не разрешает CORS. Он должен сам установить заголовок Access-Control-Allow-Origin - у вас нет прямого контроля над этим.

Однако вы можете использовать JSONP. Этот сайт разрешает его с помощью параметра запроса callback.

$http.jsonp(baseurl+'country=uk&pretty=1&action=search_listings&place_name=london'
    +encoding+type + "&callback=JSON_CALLBACK")

Ответ 2

Установите Fiddler. Добавьте к нему настраиваемое правило:

static function OnBeforeResponse(oSession: Session)
{
    oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
}

Это позволит вам делать запросы на междоменные запросы с localhost. Если API является HTTPS, убедитесь, что вы включили "дешифровать трафик HTTPS" в скрипаче.

Ссылка

-------------------- UPDATE

Ответ, который вы получаете, это JSON. Указание JSONP как типа данных не будет работать. Когда вы указываете JSONP, return должен быть функцией, а не объектом JSON.

JSONP