Сервис «О программе» работает хорошо, как и все остальные мои сервисы (из разных функций, включая вход в систему в качестве примера)
Вот Angular Call для «about», apiURL — это URL-адрес инструментов веб-сервиса.
Я получаю сообщение об ошибке CORS:
Доступ к XMLHttpRequest по адресу «http://localhost:8080/SmartICMWS/resour ... s/loadFile» 'из источника 'http://localhost:4200' заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'.< /p>
Я не знаю, как это исправить... рабочие приложения Angular находятся в проекте Firebase, а веб-сервисы Java находятся в другом URL-адресе, размещенном на веб-сервере Payara.
Мне очень нужна помощь, я перепробовал множество возможных решений, которые прочитал в Интернете.
/** * * @author intteinolo */ @Path("utilities") @RequestScoped public class UtilitiesResources {
@Context private UriInfo context;
public UtilitiesResources() { }
@OPTIONS @Produces(MediaType.APPLICATION_JSON) @Path("aboutOf") public Response aboutOf() { JSonAnswer jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.OK, "aboutOf"); jsonAnswer.addCallDataItems( new JSonField("author", "Ing. Carlos Eduardo Rodríguez López"), new JSonField("organization", "Intteinolo Proximity Solutions, LLC 2023"), new JSonField("email", "info@intteinolo.com.mx") ); return Response .status(Response.Status.OK) .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Headers", "*") .header("Access-Control-Allow-Credentials", "true") .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") .header("Access-Control-Max-Age", "1209600") .entity(jsonAnswer.toJson()) .type(MediaType.APPLICATION_JSON) .build(); }
@POST @Consumes(MediaType.MULTIPART_FORM_DATA) @Path("loadFile") public Response loadFile( // @HeaderParam("token") String token, @FormDataParam("files") InputStream uploadedInputStream, @FormDataParam("files") FormDataContentDisposition fileDetail) { JSonAnswer jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.EMPTY); Util.getDate(); // if (SecurityModule.isTokenValid(token)) { if (uploadedInputStream == null || fileDetail == null) { jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.ERR, "Invalid form data."); return Response .status(Response.Status.BAD_REQUEST) .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Headers", "*") .header("Access-Control-Allow-Credentials", "true") .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") .header("Access-Control-Max-Age", "1209600") .entity(jsonAnswer.toJson()) .type(MediaType.APPLICATION_JSON) .build(); } String uploadedFileLocation = Util.documentsPath + "/" + fileDetail.getFileName(); if (!Util.writeToFile(uploadedFileLocation, uploadedInputStream)) { jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.ERR, "Can not save file " + fileDetail.getFileName(), new JSonField("uploadedFileLocation", uploadedFileLocation)); return Response .status(Response.Status.INTERNAL_SERVER_ERROR) .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Headers", "*") .header("Access-Control-Allow-Credentials", "true") .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") .header("Access-Control-Max-Age", "1209600") .entity(jsonAnswer.toJson()) .type(MediaType.APPLICATION_JSON) .build(); } else { jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.OK, "File " + fileDetail.getFileName() + " loaded.", new JSonField("uploadedFileLocation", uploadedFileLocation)); } return Response .status(Response.Status.OK) .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Headers", "*") .header("Access-Control-Allow-Credentials", "true") .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") .header("Access-Control-Max-Age", "1209600") .entity(jsonAnswer.toJson()) .type(MediaType.APPLICATION_JSON) .build(); // } else { // jsonAnswer = new JSonAnswer(Enumerations.CallStatusEnum.WRN, "Invalid token or session has expired!"); // return Response // .status(Response.Status.UNAUTHORIZED) // .header("Access-Control-Allow-Origin", "*") // .header("Access-Control-Allow-Headers", "*") // .header("Access-Control-Allow-Credentials", "true") // .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") // .header("Access-Control-Max-Age", "1209600") // .entity(jsonAnswer.toJson()) // .type(MediaType.APPLICATION_JSON) // .build(); // } }
} [/code] Сервис «О программе» работает хорошо, как и все остальные мои сервисы (из разных функций, включая вход в систему в качестве примера) Вот Angular Call для «about», apiURL — это URL-адрес инструментов веб-сервиса. [code]aboutOf(): Observable { return this.http .options(this.apiURL) .pipe(retry(1), catchError(this.handleError)); } [/code] НО ЭТОТ ВЫЗОВ НЕ РАБОТАЕТ... [code]uploadFile( formData: FormData ): Observable { console.log("UTL: ", this.apiURL + '/loadFile'); return this.http.post(this.apiURL + '/loadFile', formData, { headers: new HttpHeaders({ 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'false', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Origin, Content-Type, Content-Range, Content-Disposition, Content-Description, Accept, X-Custom-Header, Upgrade-Insecure-Requests, File-Name', "Access-Control-Expose-Headers": "xsrf-token", // appName: environment.appName, // token: token, }), reportProgress: true, observe: 'events', }); } [/code] Я получаю сообщение об ошибке CORS: Доступ к XMLHttpRequest по адресу «http://localhost:8080/SmartICMWS/resources/utilities/loadFile» 'из источника 'http://localhost:4200' заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'.< /p> Я не знаю, как это исправить... рабочие приложения Angular находятся в проекте Firebase, а веб-сервисы Java находятся в другом URL-адресе, размещенном на веб-сервере Payara. Мне очень нужна помощь, я перепробовал множество возможных решений, которые прочитал в Интернете.
My Maven Project имеет переходные зависимости, которые включают как Jakarta.ws.rs:jakarta.ws.rs-API:2.x и Jakarta.ws.rs:jakarta.ws.rs-api:3.x . Задача состоит в том, что Jakarta.ws.rs:jakarta.ws.rs-API:3.x не является заменой для...
Мы столкнулись с проблемой при попытке добавить новую службу из каталога служб. Появляется следующая ошибка:
ОШИБКА {org.wso2.micro.integrator.initializer.utils.ServiceCatalogUtils} — произошла ошибка при извлечении сервисов из каталога сервисов....
Мое веб-приложение Jakarta использует keycloak-jakarta-servlet-filter-adapter для обработки аутентификации из KeyCloak. Установите, но не фактический ответ (тот, который с кодом 403)....
Мое веб-приложение Jakarta использует keycloak-jakarta-servlet-filter-adapter для обработки аутентификации из KeyCloak. Установите, но не фактический ответ (тот, который с кодом 403)....