Мой проект работает на www.example.com:8888, и моему проекту нужен API, который работает на том же сервере в другом ПОРТУ (www.example.com:8081). Теперь я столкнулся с проблемой CORS при общении с API
Ниже приведен отрывок из моего кода JAVA API:
@GET
@Path("/getFiles")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response gettingJsonFiles(@QueryParam("data") String data) throws IOException {
List<org.json.JSONObject> jsonList=JsonService.gettingJsonFiles(data);
return Response.ok(jsonList.toString()).header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.header("Access-Control-Allow-Headers", "X-Requested-With")
.allow("OPTIONS").build();
}





добавить строку @CrossOrigin(origins = "http://localhost:9000") для разрешения Cors
вы также можете создать собственный фильтр - посмотрите -https://howtodoinjava.com/servlets/java-cors-filter-example/
Пожалуйста, проверьте в ответе на запрос CORS, присутствуют ли указанные вами заголовки.
Попробуйте добавить ниже заголовок вместе с существующими заголовками:
"Access-Control-Allow-Credentials", "true"
Результирующий код должен быть:
@GET
@Path("/getFiles")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response gettingJsonFiles(@QueryParam("data") String data) throws IOException
{
List<org.json.JSONObject> jsonList=JsonService.gettingJsonFiles(data);
return Response.ok(jsonList.toString())
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS")
.header("Access-Control-Allow-Headers", "X-Requested-With")
.header("Access-Control-Allow-Credentials", "true")
.build();
}
Также, если есть какие-либо пользовательские заголовки, которые вы отправляете с запросом, вы должны добавить их в "Access-Control-Allow-Headers".
Спасибо за ответ @Sangam Belose Но я все еще не могу продолжить. Когда я добавляю эти заголовки, API даже не доступен публично. Теперь он показывает ошибку 404 при запросе напрямую через браузер, а раньше он был доступен.
404 не должно происходить путем добавления только этих изменений ... Надеюсь, вы перезапустили сервер приложений.
Спасибо за ответ @anshuVersatile В настоящее время я не использую никаких фреймворков и не могу продолжить! Есть ли в наличии библиотека?