Я пытаюсь создать связь с моим Java Jetty Backend из моего приложения Angular.Когда я пытаюсь выполнить мой запрос, я получаю следующую ошибку:
![Error on request](https://i.stack.imgur.com/zFOuf.jpg)
Мой код на стороне клиента: (угловой 7.2.1).Я также использую HttpInterceptor для аутентификации, которая должна работать.Я также запускаю код в режиме разработки с ng serve
.
@Injectable({
providedIn: 'root'
})
export class NgHydrantService {
constructor(private http: HttpClient) {
}
public register(entity: IEntityDescription): Observable<StandardResponsePacket> {
let packet = new RegisterEntityRequestPacket(entity);
return this.http.post(this._apiUrl, packet.toJson())
.pipe(
map(value => {
console.log('register result:', value); //<-- never executed
return <StandardResponsePacket>HydrantPackage.fromJson(value)
})
);
}
}
//The interceptor
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with basic auth credentials if available
if (this.user != null) {
const clonedRequest = request.clone({
headers: request.headers.set('Authorization', `Basic ${this.user.getAuth()}`)
.set('Accept','application/json')
});
//This debug line works and looks good!
console.log('NgHydrantAuthInterceptor#intercept', clonedRequest);
return next.handle(clonedRequest);
}
return next.handle(request);
}
Мой код на стороне сервера: (Jetty-9.4.14.v20181114), работающий на локальном хосте.
public final class PacketHandler extends AbstractHandler
{
@Override
public void handle( String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response ) throws IOException
{
try
{
// Declare response encoding and types
response.setContentType( "application/json; charset=utf-8" );
// Enable CORS
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, HEAD");
response.addHeader("Access-Control-Allow-Headers", "X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept");
response.addHeader("Access-Control-Max-Age", "1728000");
//... more stuff
}
finally
{
// Inform jetty that this request was handled
baseRequest.setHandled( true );
}
}
}
Вещи, которые я проверял:
- Во время исследования некоторые люди ссылаются на проблемы с CORS (поэтому я добавил записи заголовков в коде на стороне сервера)
- Тот же запрос в Postman работает без проблем
- На стороне сервера нет журналов
Мой вопрос касается возможного решения для получения ответов от моего сервера во время разработки.