междоменный запрос через $http.get
Доброе утро. Начал проходить уроки на angular.ru и дошел до $http.get.
Пробую обратиться к другому сайту что отдает данные в json и ничего не выходит( function SitemodxListCtrl($scope, $http) { $http.get('http://on-modx.ru/api?display=1&random').success(function(data) { $scope.sitemodx = data; }); ошибку выдает Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers. как с этим бороться? спасибо! |
нельзя делать запросы на другой домен. можно сделать запрос на свой сервер, а уже от своего сервера на чужой
|
попробовал:
создал страничку на ней запрос к другому домену, теперь пишет просто - (canceled) и все( |
только так пока заработало
<?php $ch = curl_init(); $cv = curl_version(); $user_agent = "curl ${cv['version']} (${cv['host']}) libcurl/${cv['version']} ${cv['ssl_version']} zlib/${cv['libz_version']}"; curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_ENCODING, "deflate, gzip, identity"); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPGET, TRUE); curl_setopt($ch, CURLOPT_URL, "http://on-modx.ru/api?mode=json&display=2&random&revo&evo&w=200&h=300"); $respone = curl_exec($ch); curl_close($ch); return $respone; |
Цитата:
|
Цитата:
получилось как skrudjmakdak посоветовал. p.s. Подскажите еще, а как мне загрузить в область видимости обычную html, не json? что то вроде как на angular.ru читаю спецификацию по api , но чет не вкурил еще то есть допустим делаю: var myApp = angular.module('phonecat',[]).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){ $routeProvider. when('/phones', {templateUrl: 'partials/phone-list.html', controller: 'PhoneListCtrl'}). when('/phones/:phoneId', {templateUrl: 'partials/phone-detail1.html', controller: 'PhoneDetailCtrl'}); } ]); function PhoneDetailCtrl($scope, $routeParams, $http) { $http.get('phones/' + $routeParams.phoneId + '.html').success(function(data) { $scope.phone = data; }); } где phoneId.html у меня просто страница. И получаю на выходе страницу со всеми тегами - <p> <h1> и т.д. или вообще так не делается? ок! уже нашел))) <div ng-bind-html-unsafe="html"></div> |
«с JSONP тоже не вышло.»
В jQuery, когда не выходило с JSONP, выходило через script. Правда, в Ангуляре не пробовал |
Кроссдоменные запросы можно делать
на сервере куда вы посылаете запрос нужно добавить в ответ заголовок Access-Control-Allow-Origin: * |
Цитата:
в доках ангуляра так и написано (CORS suppoted) http://jsfiddle.net/ricardohbin/E3YEt/ http://better-inter.net/enabling-cors-in-angular-js/ |
У меня в начале PHP скрипта работает такая комбинация:
header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, X-Requested-With'); |
Часовой пояс GMT +3, время: 04:04. |