2016-02-16 3 views
0

Я пытаюсь сделать вызов ajax, используя AngularJS $http сервис, подключившись к API RESTful.AngularJS: заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе. Origin 'null' поэтому не разрешен доступ

Результат я получаю:

XMLHttpRequest не может загрузить http://hostname:8080/abc/test. Нет Заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе . Поэтому исходный 'null' не допускается.

Я знаю, что я делаю XMLHttpRequest to a different domain. Так что браузер блокирует его, поскольку он обычно позволяет запрашивать тот же источник из соображений безопасности.

Запрошенный Код:

$http({ 
method: 'GET', 
cache: true, 
url: "http://hostname:8080/abc/test" 
}).then(function successCallback(response) { 
console.log(response); 
}, function errorCallback(response) { 
}); 

Я прочитал очень много вопросов на StackOverflow:

No 'Access-Control-Allow-Origin' header is present on the requested resource error
Access-Control-Allow-Origin header
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '…' is therefore not allowed access

Но нет успеха. Любая немедленная помощь будет очень заметной. Thanks

ответ

3

Я получил ответ на этот вопрос, который был опубликован мной и его работой сейчас.

мы должны использовать JSONP, чтобы предотвратить перекрестное происхождение политики.

Код:

var url = "http://hostname:8080/abc/test?callback=JSON_CALLBACK"; 

$http.jsonp(url) 
    .success(function(data){ 
     console.log(data); 
    }); 
0

Вы уверены, что это код?

url: http://hostname:8080/abc/test 

, потому что URL должен быть строкой, конечно

url: "http://hostname:8080/abc/test" 

Кроме того, вы должны разрешить перекрестные запросы происхождения на сервере. как вы можете это сделать, зависит от вашего сервера. на чем написан ваш сервер? PHP? Ява? какие рамки? и т. д.

+0

Хороший улов я пропустил это.Также он может попробовать метод: «JSONP» это часто решает эту проблему. –

+0

Да, запрос url правильный .. это просто демо, но orginial url в том же формате.сервер написан на java..Также я вызываю restful api, который доступен на другом хосте –

+0

ОК, так что это java. вы используете любые рамки, такие как весна, трикотаж и т. д.? в зависимости от структуры существуют различные решения о том, как добавить поддержку креста. однако у всех есть общее, что вы пытаетесь предоставить заголовок с именем «Access-Control-Allow-Origin» и добавьте к нему URL-адрес ваших приложений. Для целей тестирования вы можете начать с простого шаблона «Access-Control-Allow-Origin»: «*» в своем заголовке –

0

Я столкнулся с этим вопросом ранее сегодня на моем обычном письменном сервере golang.

Если вы подключаетесь к пользовательской закодированы поисковый сервер

"{Язык} CORS"

Если вы используете данный API поиска "{} Сервер CORS"

Вы должны find somethinf

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

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