Я разрабатываю пример приложения, в котором я использую Angular 5 для front end и Go Lang для сервисов отдыха (веб-сервисы). Здесь мой угловой вызов не вызывает, но эти службы работают нормально, когда я запускаю из Google, вставляя URL-адрес, и я добавил CORS в Go. Вот мой угловой код:
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))
}
Вот скриншот, в котором служба работает нормально:
Здесь сервисный метод не вызывается с угловым и ошибок нет
вы должны импортировать и вставлять 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);
};
}
Как вы назвали метод услуг в угловом компоненте?
Обратитесь к разделу HttpClient с угловым направлением. https://angular.io/guide/http#getting-json-data
Поскольку вы не показывали код для углового компонента, я не знаю причину вашего ploblem. Я предполагаю, что вы можете подписаться на Observable, который является возвращаемым значением метода getValues. Он должен выглядеть следующим образом (см. Документы):
showConfig() {
this.configService.getConfig()
.subscribe((data: Config) => this.config = {
heroesUrl: data['heroesUrl'],
textfile: data['textfile']
});
}