Rest angular Access-Control-Allow-Origin

me da este error :

Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en http://localhost:8090/test/databases (razón: falta la cabecera CORS 'Access-Control-Allow-Origin').

Mi servidor es una aplicación Java en un tomcat 8

En otro proyecto tengo esto :

var App = angular.module('SimulatorApp', ['ngRoute', 'ngResource']);
App.controller('EOGController', ['$scope','$resource',function($scope, $resource) { 
    $scope.loadData = function() {
        var Something = $resource("http://localhost:8090/test/databases/test", {id: "@id"});
        $scope.something = Something.get({id:15});                                          
    }   
}]);

Realmente si llama, me da código 200 pero el error que mencionaba antes.

SI lo llamo desde poster me funciona sin problemas o si en el navegador pongo la url : http://localhost:8090/test/databases/test?id=15 tb funciona

1
задан 19.12.2016, 18:08
3 ответа

Когда с твоего сайта AngularJS ты пробуешь соглашаться на твой сайт на сервере, этот может отвечать, что не всех сайтов возможно соглашаться на эти данные, Origin - домен, все это назначенный по умолчанию приходит недоступно с другого источника, который не оригинал.

Добавляет в твой сервер

<init-param>
    <param-name>cors.supportedHeaders</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers, Last-Modified</param-value>
</init-param>

И с названный твоего AngularJS добавь contentType

contentType: "application/x-www-form-urlencoded;"

Так:

$http({
     method: 'GET',
     url: 'http://localhost:8090/test/databases/test',
     params: {id: "@id"},
     contentType: "application/x-www-form-urlencoded"

}).then(function success(response) {

}, function error(response) {

});
2
ответ дан 24.11.2019, 11:59
  • 1
    Я добавил линию так в web.xml моего сервера tomcat как в web.xml моего aplicació n Веб java – sirdaiz 19.12.2016, 18:03
  • 2
    @Jose удали dataType: json – sioesi 19.12.2016, 18:16
  • 3
    Действительно он не был должен делать это, но ты помог уметь бросать меня, где, ты это решил со следующим: – sirdaiz 19.12.2016, 18:30
  • 4
  • 5
    есть! проблема также была стороны твоего aplicació n, как хорошо, что ты это решил! – sioesi 19.12.2016, 18:31

Чтобы реализовывать перекрещенные запросы, host должен позволять ясно запрос с referer клиент. А следовательно ты должен aГ±adir следующий заголовок:

Access-Control-Allow-Origin: http://sitio-del-request.com

, где это sitio-del-request.com сайт, который выполняет запрос.

С этим я хочу сказать, что проблема не в Угловом, если не на сервере в Java.

0
ответ дан 24.11.2019, 11:59

@sioesi я добавил линию так в web.xml моего сервера tomcat, как в web.xml меня aplicaciГіn Веб java

var Something = $resource("http://localhost:8090/test/databases/test", {id: "@id"});
$scope.something = Something.get({id:15});

Me sigue dando el mismo problema

я попытался с твоим: App.controller ('EOGController', [' $scope', '$http', '$resource', function ($scope, $http, $resource) {.... $http ({ method: 'GET', url: ' http://localhost:8090/test/databases/test ', params: { пойдите: "@id" }, dataType: "json", contentType: "application/x-www-form-urlencoded"

    }).then(function success(response) {
        $scope.something = Something.get({id:15});  
    });

Ошибка 400: Запрос с другого источника, блокированный: polГ-костариканская того же источника запрещает читать удаленный ресурс в http://localhost:8090/test/databases/test? пойдите = пойдите (razГіn: нет заголовка CORS 'Access-Control-Allow-Origin').

0
ответ дан 24.11.2019, 11:59