Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

524
Views
La respuesta angular de HttpClient a la solicitud de verificación previa no pasa la verificación de control de acceso: no tiene el estado HTTP correcto

Estoy intentando usar HttpClient para obtener un retorno json de un archivo que he bloqueado usando htaccess y htpasswd en mi servidor web. Puedo ejecutar la solicitud de obtención/publicación en el cartero con el encabezado de Autorización y vuelve bien. Cuando lo ejecuto en angular, aparece el error en el título junto con un error 401.

Aquí está la función que activa HttpRequest

 getConfig(): Observable<any> { return this.http.get('myurlhere/myfile.json', { responseType: 'json' }) }

Aquí está mi interceptor, y sí, el archivo console.log se dispara y el registro del resultado muestra la solicitud con los encabezados adjuntos.

 import { Injectable } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable() export class AuthInterceptor implements HttpInterceptor { constructor() { } intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { req = req.clone({ setHeaders: { 'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXX' } }) console.log('INTERCEPTED') return next.handle(req); } }

Hay muchos problemas similares aquí, pero nada parece estar funcionando. El retorno 401 está etiquetado como OPCIONES y he reconstruido lo que eso significa, simplemente no puedo encontrar una forma de evitarlo.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

REVISIÓN Terminó siendo un problema del lado del servidor con la configuración de htaccess y CORS.

 Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT" Header always set Access-Control-Allow-Headers: "Authorization" <Files config.json> AuthType Basic AuthName "Authentication Required" AuthUserFile C:\xampp\htdocs\.htpasswd Options -Indexes <LimitExcept OPTIONS> Require valid-user </LimitExcept> </Files>

¡Necesitaba agregar el bloque LimitExcept , luego comenzó a funcionar!

over 4 years ago · Santiago Trujillo Report

0

Parece que hay un problema con la request , el objeto de request ( req ) es inmutable, por lo que debe definir una nueva propiedad y clonar la solicitud, luego actualizarla

 import { Injectable } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable() export class AuthInterceptor implements HttpInterceptor { constructor() { } intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { const modifiedReq = req.clone({ setHeaders: { 'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXX' } }) console.log('INTERCEPTED') return next.handle(modifiedReq); // pass the modified request to the handle method } }

consulte los documentos para obtener más información

Espero eso ayude

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!