Я разработал веб-приложение, используя Джерси и jsp. все вызовы API джерси работают как за исключением почтальона, но когда я делаю ajax вызов в jsp, он получает ошибку, как показано ниже
Я добавил фильтр cors в свой бэкэнд в своем CORSFilter. java
package com.telusko.demorest.Controllers;
import java.io.IOException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.ext.Provider;
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext request,
ContainerResponseContext response) throws IOException {
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept, authorization");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
System.out.println("jhjhjhbjh");
}
}
вот мой фронтэнд Ajax call
var $url="http://localhost:8080/demorest/webapi/aliens/alien/103";
$.ajax({
url: $url,
contentType: 'application/json',
headers: { 'Access-Control-Allow-Origin': '*' }, //add this line
dataType: 'json',
type: 'GET',
success: function (Data) {return false;
}
это мой бэкэнд метод
@Path("aliens")
public class AlienController {
AlienRepository repo=new AlienRepository();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<AlienModel> getaliens() {
return repo.getAliens();
}
}
и добавил эти строки в сеть. xml тоже
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.telusko.demorest.CORSFilter</param-value>
</init-param>
Есть ли что-то, что я должен реализовать в моем интерфейсе, какие-либо предложения?