![](/img/trans.png)
[英]http://localhost:8080/mix/api/get/holidaytype/all Response CoSending 'GET' request to URL :de : 405
[英]Http failure response for localhost api request: 0 Unknown Error - Angular
我正在尝试从Angular应用程序创建到Java Jetty后端的通信。 当我尝试执行请求时,出现以下错误:
我在客户端的代码:(Angular 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 );
}
}
}
我检查过的事情:
我的问题是有关在开发期间从服务器获取响应的可能解决方案。
您能否按照以下链接https://www.html5rocks.com/zh-CN/tutorials/cors/中的步骤操作,以获取快速解决方案,请在chrome https://chrome.google.com/webstore/detail/allow-中添加以下插件控制允许origi / nlfbmbojpeacfghkpbjhddihlkkiljbi?HL = EN
通过设置Web服务器配置以允许使用cors策略,我能够解决可能的问题。 就我而言,我使用Nginx Web服务器遵循此链接中的配置https://enable-cors.org/server_nginx.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.