我遇到运行时错误:
无法在"XMLHttpRequest"上执行"打开":无效的 URL 错误:无法在"XMLHttpRequest"上执行"打开":无效的 URL 在 http://localhost:8100/build/polyfills.js:3:2793 at XMLHttpRequest.open (eval at 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
这是一个无效的URL(就像错误消息所说的那样(。
如果主机名后有一个:
,则必须后跟端口号(然后是路径(。 app
不是数字,而是三个字母。
它可能在 Env 文件中产生 IP/。
Ex- apiLogin: 'http://192.168.1.71:5000', --CurrectapiLogin: 'http://192.168..71:5000', --Incurrect
所以检查环境文件 IP 或 Ngrok
问题出在您的网址上。正确阅读错误消息,它说无效的URL
在这里,您在URL中使用了不正确的URL 'http://localhost:app/api/reviews'
localhost:app
。您必须使用某种开放的端口号而不是随机文本。例如3000
、4000
、5000
、8080
、8000
等。
所以你的网址会像这样'http://localhost:3000/api/reviews'
就我而言,我在 reactjs 中遇到了同样的问题。我发现端点(http://:ip(中有拼写错误。所以在纠正了这一点之后。问题已解决