我有一个WebApi,已经在该WebApi上从另一个应用程序发送了请求。一切正常。我写了WebApiConfig Axes.set_autoscale_on(True)
现在,我已经创建了另一个应用程序,我想推迟此API的发布方法。
我创建了表单,并编写了一种方法将其提交给API
config.EnableCors(new EnableCorsAttribute("http://localhost:4200", headers: "*", methods: "*"));
我在ts和cs上创建了相同的自定义类
postUser(user: User) {
var httpOptions = { headers: new HttpHeaders({
'Content-Type': 'application/json'
})};
var body = JSON.stringify(user);
return this.http.post<User>('http://localhost:51251/api/Users', body, httpOptions);
}
我在API中的后方法:
export class User {
Id: number;
Email: string;
Password: string;
ConfirmPassword: string;
}
public class User
{
public int Id { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
}
在控制台中,像这样// POST: api/User
[ResponseType(typeof(User))]
public IHttpActionResult PostUser(User user)
{
db.Users.Add(user);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = user.Id }, user);
}
记录正文
但是没有任何要求,我也不明白为什么。没有错误显示。可能是什么原因?
答案 0 :(得分:1)
在Component
或类似的执行postUser()
中,您必须调用subscribe()
才能使请求实际执行。假设postUser()
服务Injectable
:
服务:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class SomeService {
constructor(private http: HttpClient) { }
postUser(user: User) {
const httpOptions = { headers: new HttpHeaders({
'Content-Type': 'application/json'
})};
const body = JSON.stringify(user);
return this.http.post<User>('http://localhost:51251/api/Users', body, httpOptions);
}
}
组件:
import { Component } from '@angular/core';
import { SomeService } from 'path/to/service';
@Component({ // ... })
export class AppComponent {
constructor(private someService: SomeService) {}
someMethod() {
this.someService.postUser(someUser).subscribe(results => console.log(results));
}
}
希望有帮助!