我试图在laravel 5.7中创建自己的API,并在Angular7中使用它。
我尝试了JsonPlaceholder的API,一切都进行得很好。
当我尝试在Laravel中使用自制API时遇到问题。
我试图在返回json_encode($array)
的控制器中创建一个函数。此后,我在Postman中对其进行了测试,一切都按预期进行。
json具有虚拟数据,但这无关紧要。
当我从Angular调用它时,我在控制台中收到此错误:
error: error { target: XMLHttpRequest, isTrusted: true, lengthComputable: false, … }
headers: Object { normalizedNames: Map(0), lazyUpdate: null, headers: Map(0) }
message: "Http failure response for http://127.0.0.1:8000/api/test: 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: "http://127.0.0.1:8000/api/test"
之后,我尝试在Laravel中使用一个集合。Postman的响应还可以,但是角度响应是相同的。
方法:
public function test() {
$test = [
'name' => 'Andi',
'password' => 'Parola'
];
return response()->json($test);
}
收集方式:
public function test() {
$test = [
'name' => 'Andi',
'password' => 'Parola'
];
return new ApiTest($test);
}
Angular服务:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class SteamCallsService {
configUrl = 'http://127.0.0.1:8000/api/test';
constructor(
private http: HttpClient
) { }
async newFunction():Promise<any> {
try {
const item = await this.http.get(this.configUrl).toPromise();
return item;
} catch (error) {
console.error(error);
}
}
}
角度组件
import { Component, OnInit } from '@angular/core';
//Services
import { SteamCallsService } from '../app/steam-calls.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
array = [];
constructor (
private _steamApi: SteamCallsService
) {}
ngOnInit() {
this.getJson();
}
async getJson() {
const res = await this._steamApi.newFunction();
this.array = res;
}
}
我希望有一个简单的json作为响应。 编辑:在网络选项卡(来自检查器)中,请求的状态为200,数据正是我所期望的。 为什么会出现此错误以及如何使用该数据?