Tengo un error de tiempo de ejecución:
Error al ejecutar 'abrir' en 'XMLHttpRequest': Error de URL no válida: Error al ejecutar 'abrir' en 'XMLHttpRequest': URL no válida en http://localhost:8100/build/polyfills.js:3:2793 en XMLHttpRequest.open (evaluación en s ( http://localhost:8100/build/polyfills.js:2:29793 ), :3:31)
import { Injectable } from '@angular/core'; import { Http, Headers } from '@angular/http'; import 'rxjs/add/operator/map'; @Injectable() export class Reviews { data: any; constructor(public http: Http) { this.data = null; } getReviews(){ if (this.data) { return Promise.resolve(this.data); } return new Promise(resolve => { this.http.get('http://localhost:app/api/reviews') .map(res => res.json()) .subscribe(data => { this.data = data; resolve(this.data); }); }); } createReview(review){ let headers = new Headers(); headers.append('Content-Type', 'application/json'); this.http.post('http://localhost:app/api/reviews', JSON.stringify(review), {headers: headers}) .subscribe(res => { console.log(res.json()); }); } deleteReview(id){ this.http.delete('http://localhost:app/api/reviews/' + id).subscribe((res) => { console.log(res.json()); }); } }http://localhost:app/api/reviews
Esta es una URL no válida (como dice el mensaje de error).
Si tiene un : después del nombre de host, debe ir seguido de un NÚMERO de puerto (y luego la ruta). app no es un número, son tres letras.
El problema está en tu URL. Lea el mensaje de error correctamente, dice URL no válida
Aquí está utilizando localhost:app en su URL 'http://localhost:app/api/reviews' que es incorrecta. Debe usar algún tipo de número de puerto abierto en lugar de texto aleatorio. Por ejemplo 3000 , 4000 , 5000 , 8080 , 8000 , etc.
Entonces su URL será como esta 'http://localhost:3000/api/reviews'
En mi caso, estoy enfrentando el mismo problema en reactjs. Descubrí que había un error tipográfico en endpoint(http://:ip) . así que después de corregir eso. problema resuelto