2017-02-07 13 views
1

Я использую tomcat 7 для запуска своих сервлетов в своем динамическом веб-проекте в java (eclipse ee). Я добавил к моему web.xml файл следующий абзац (из https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter/Introduction):включение CORS в сервлетах TOMCAT 7 для почтового запроса

<filter> 
<filter-name>CorsFilter</filter-name> 
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>CorsFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>" 

Я пытаюсь использовать запрос на почту от хрома, используя следующую угловую JS код:

app.controller("LoginControler", function($scope,$rootScope,$http) { 
    $scope.submit = function() { 
     $rootScope.ret = "clicked"; 
     var data = { 
       CompanyName: $scope.CompanyName, 
       UserName: $scope.UserName, 
       Password: $scope.Password, 

     }; 
     $http.post(URL, data).success(function(data, status) { 
      $rootScope.ret = data; 
     }) 
    } 
}); 

и я продолжаю получать следующий код ошибки: «XMLHttpRequest не может загрузить http://localhost:8080/Project-FrontEnd/ServletUsers. Ответ на запрос предполетной проверки не проходит проверку контроля доступа: Нет заголовка« Access-Control-Allow-Origin »на запрошенном ресурсе. Origin 'null' поэтому не разрешен доступ. Ответ имел статус HTTP status co de 403. "

Я пробовал все решения, которые мог найти, но без помощи ... пожалуйста, может ли любой орган решить мою проблему?

ответ

1

привет друзьям только обновление tomcat от версии 7 до версии 8.5 решил проблему с оригинальным решением.

0

Для параметра CorsFilter вам необходимо добавить значение «Access-Control-Allow-Origin». Теперь Tomcat говорит, что по вашему происхождению вы не можете получить доступ сюда. Добавьте это к конфигурации CorsFilter:

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
    //add below config 
    <init-param> 
     <param-name>cors.allowed.origins</param-name> 
     <param-value>*</param-value> 
    </init-param> 

</filter> 

<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Так что с этой конфигурацией вы можете определить, из каких доменов запросы разрешены. Вместо * вы можете добавлять разделенные запятой домены, которые могут получить доступ к вашим ресурсам.