在Angular7中使用laravel 5.7 API的问题

时间:2019-02-18 22:35:28

标签: angular laravel-5

我试图在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,数据正是我所期望的。 为什么会出现此错误以及如何使用该数据?

0 个答案:

没有答案