typescript - Angular 4: "Fallo de respuesta HTTP para (URL desconocida): 0 Error desconocido"
Estoy tratando de consumir una URL de API. Estoy llamando a la API con el siguiente código.
import {HttpClient, HttpClientModule, HttpParams} from "@angular/common/http";
@Injectable()
export class PropertyPrefService {
constructor(private http: HttpClient,
private configurationService:Configuration) {}
public searchProjects(propFilter:string):any{
let temp:any;
const options = propFilter ?
{
params: new HttpParams().set('query', propFilter)
} : {};
return this.http.get<any>(this.configurationService.propertySystemApiUrl, options)
.subscribe((results:any) => {
console.log(results);
});
}
En el código de Angular no estoy obteniendo ninguna respuesta y estoy recibiendo un error:
Error de respuesta HTTP para (URL desconocida): 0 Error desconocido.
Sin embargo, cuando hago una solicitud, si abro las herramientas de desarrollador en Chrome, veo que la respuesta se recibe del servidor.
La URL es la URL "https://..." y no "http://...".
Respuesta #1
El problema es que Angular Universal usaba Express, y la seguridad valida el certificado SSL del servidor; usé un certificado SSL autofirmado.
La solución es agregar NODE_TLS_REJECT_UNAUTHORIZED=0 a tu entorno para desactivar la verificación SSL en Node.js. Debes solo establecer esto en desarrollo; en producción es muy arriesgado.
Respuesta #2
Citando a Sander Elias en Google Groups:
"El error 0 es lo que obtienes cuando la solicitud no se realiza. La causa más común de esto es que CORS no está configurado correctamente en el servidor. Permíteme reformular eso: en el 98% de los casos, este es un problema del lado del servidor."