go - Angular 客户端不调用后端服务

标签 go angular5

我正在开发示例应用程序,我在其中使用 Angular 5 作为前端,使用 Go Lang 作为其余服务(Web 服务)。在这里我的角度没有调用服务,但是当我通过粘贴 url 从谷歌运行并且我在 Go 中添加了 CORS 时,这些服务工作正常。这是我的角度代码:

export class TestServiceService {

private url2 ='http://localhost:8000/api/books/';

  constructor(private http : HttpClient) { }

  getValues() 
  {
    debugger;
     return this.http.get(this.url2);
  };

}

这是我的 Go 代码 package main

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

//Book struct
type Book struct {
    RollNo    string `json:"rollNo"`
    FirstName string `json:"firstName"`
    Author    string `json:"author"`
}

var books []Book

func getBooks(w http.ResponseWriter, r *http.Request) {
    fmt.Println("Method hit")
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(books)
}

func main() {
    r := mux.NewRouter()

    fmt.Println("started service")

    books = append(books, Book{RollNo: "1", FirstName: "Ravi", Author: "Dan"})

    r.HandleFunc("/api/books/", getBooks).Methods("GET")

    log.Fatal(http.ListenAndServe(":8000", r))
}

这是服务正常运行的截图证明:

enter image description here

这里的service方法没有用angular调用,没有报错

最佳答案

您应该导入并注入(inject) HttpClient,

import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';

@Injectable()
export class TestServiceService {

private url2 ='http://localhost:8000/api/books/';

constructor(private http : HttpClient) { }

getValues() 
{
    debugger;
    return this.http.get(this.url2);
};


}

关于go - Angular 客户端不调用后端服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51822516/

相关文章:

go - 无法使用 net.Conn.Read 从 UNIX 套接字读取

sockets - 使用 golang docker 引擎创建容器时出错

angular - 如何将 "mat-toolbar"放置在 "mat-sidenav"Angular Material 5 之上

angular - 如何使用primeng将电话号码附加到 Angular 5的国家代码

angular - 如何获取 Angular 5 中的版本

mongodb - 聚合管道返回错误结果与 CLI

pointers - Golang 结构问题指向父结构方法

Go template.ExecuteTemplate 包含 html

javascript - Angular 5 删除特定的 DOM 元素

javascript - Angular 5 - 动画不起作用