междоменный запрос через $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, время: 13:20. |