gpt4 book ai didi

angular - 为什么我无法获得体形 Angular

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:53 26 4
gpt4 key购买 nike

我使用 angular 来获取信息注册 html 并且我发布到路径 api 它工作但打印单词“工作”并且我无法在正文中获得值(value)并且我测试路径后使用 postman 显示名字................................................................ ..................................................... ............................................

server.go

package main

import (
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
"net/http"
)

func main() {

router := mux.NewRouter()
router.HandleFunc("/register", Createuser).Methods("POST")
headers := handlers.AllowedHeaders([]string{"X-Requested-With", "Content-Type", "Authorization"})
methods := handlers.AllowedMethods([]string{"GET", "POST", "PUT", "DELETE"})
origins := handlers.AllowedOrigins([]string{"*"})
http.ListenAndServe(":12345", handlers.CORS(headers, methods, origins)(router))

}


func Createuser(writer http.ResponseWriter, request *http.Request) {
request.ParseForm()
print(request.FormValue("firstName"))
print("work")
}

注册.component.ts

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { first } from 'rxjs/operators';

import { AlertService, UserService } from '../_services';

@Component({templateUrl: 'register.component.html'})
export class RegisterComponent implements OnInit {
registerForm: FormGroup;
loading = false;
submitted = false;

constructor(
private formBuilder: FormBuilder,
private router: Router,
private userService: UserService,
private alertService: AlertService) { }

ngOnInit() {
this.registerForm = this.formBuilder.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required],
username: ['', Validators.required],
password: ['', [Validators.required, Validators.minLength(6)]]
});
}

// convenience getter for easy access to form fields
get f() { return this.registerForm.controls; }

onSubmit() {
this.submitted = true;

// stop here if form is invalid
if (this.registerForm.invalid) {
return;
}

this.loading = true;
this.userService.register(this.registerForm.value)

}
}
用户服务.ts

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

import {environment} from '../../environments/environment';
import {User} from '../_models';

@Injectable()
export class UserService {
constructor(private http: HttpClient) {
}


register(user: User) {
return this.http.post(`${environment.apiUrl}/register`, {
firstName: user.firstName,
lastName : user.lastName,
username : user.username,
password : user.password
})
}

}
}

最佳答案

我认为可能是您的 go 服务器需要 content-type: application/x-www-form-urlencoded

https://golang.org/pkg/net/http/#Request.ParseForm

但是 Angular 将表单作为 json 对象提交。

要调试正在发生的事情,请检查从 chrome 到后端的传出响应通过在 chrome devtools 的设置菜单中启用“Log XmlHttpRequest”来做到这一点。

然后您应该能够确定正文是 JSON。

尝试使用它来解析正文

func test(rw http.ResponseWriter, req *http.Request) {
decoder := json.NewDecoder(req.Body)
var t test_struct
err := decoder.Decode(&t)
if err != nil {
panic(err)
}
log.Println(t.Test)
}

关于angular - 为什么我无法获得体形 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com