У меня есть API, который отправляет запрос другому API для входа в систему.
Это класс CorsConfiguration из моего REST API (Spring Boot)
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/v1/api/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*");
}
}
Вмоя конечная точка (/ v1 / api / login), я установил «Access-Control-Allow-Origin» в ответе.
@PostMapping
public ResponseEntity doLogin(@RequestBody String data, @RequestHeader("Content-Type") String content) throws IOException {
if (content.equals("application/json;charset=UTF-8") && !data.isEmpty()) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("Access-Control-Allow-Origin","*");
Login login = new ObjectMapper().readValue(data, Login.class);
if (login.getEmail() != null && login.getPassword() != null) {
ResponseEntity res = loginService.auth(login);
return new ResponseEntity(res.getBody(), responseHeaders, res.getStatusCode());
}
}
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
Но я все еще получаю эту ошибку на своем веб-интерфейсе (Vue.JS):
Доступ к XMLHttpRequest в 'http://localhost:3000/v1/api/login' от источника' http://localhost:8080' заблокирован политикой CORS: заголовок «Access-Control-Allow-Origin» содержит несколько значений «*, *», но разрешено только одно.
Когда я печатаюответ от другого API на мой, я вижу:
<200, "access_token": "e701bc80b64ab41cfba3efab1c516e3bcc61716b", "expires_in": 1200, "token_type": "Bearer", "scope":"", "refresh_token": "f3549bacde5c10fe76b97a91f34cf7997ab3111d"}, [Дата: "Пн, 24 июня 2019 16:45:52 GMT", Сервер: "Apache / 2.4.18 (Ubuntu)", Cache-Control: "no-store, private ", Pragma:" no-cache ", X-Robots-Tag:" noindex ", Access-Control-Allow-Origin:" * ", Access-Control-Allow-Methods:" POST, GET, PUT, PATCH, DELETE, OPTIONS ", Access-Control-Allow-Headers:" Авторизация, Content-Type, Accept ", Access-Control-Allow-Credentials:" true ", Content-Length:" 169 ", Keep-Alive:" timeout= 5, макс. = 100 ", подключение: "Keep-Alive", Content-Type: "application / json"]>>
И мой ответ на интерфейс:
<200 OK OK, {"access_token":" e701bc80b64ab41cfba3efab1c516e3bcc61716b», "expires_in": 1200, "token_type": "Канал", "Объем": "", "refresh_token": "f3549bacde5c10fe76b97a91f34cf7997ab3111d"}, [Access-Control-Allow-Origin: "*"]>
Любая помощь будет полезна!