При отправке почтового запроса от моего веб-сервиса tomcat я получил сообщение об ошибке, как показано ниже:
"Ответ на предварительный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок« Access-Control-Allow-Origin ». Следовательно, исходному« null »запрещен доступ.»
Я использую tomcat 9. * и разработал свой веб-сервис с помощью jax-rs java web api.
Пока я тестировал свой веб-сервис с почтальоном, я получил хороший ответ от своего веб-сервиса (ответ http 200). Тем не менее, когда я попытался отправить ajax сообщение, я получил сообщение выше. Я попытался включить фильтр CORS и попытался отправить запрос на получение, который работает нормально.
web.xml:
<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>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>'
функция сообщения jax-rs:
@POST
@Path("/users2")
@Consumes("application/json")
@Produces(MediaType.APPLICATION_JSON)
public Response SetAllTlcsStatus(List<TrafficLight> c){
System.out.println("You have entered the SetTlc function");
return Response.ok() //200
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE,
PUT")
.allow("OPTIONS").build();
}
запрос Ajax:
$.ajax({
type : "POST",
url : "http://localhost:8080/userManagement/rest/Traffic/users2",
contentType :"application/json; charSet=UTF-8",
data : d,
dataType : "json",
beforeSend: function (xhr){
console.log('Before');
xhr.setRequestHeader('Authorization', make_base_auth(user, pass));
}'