gpt4 book ai didi

asp.net-core-webapi - 415(不支持的媒体类型)角度 4 柱

转载 作者:行者123 更新时间:2023-12-02 10:47:07 24 4
gpt4 key购买 nike

我正在尝试使用 Angular 4 post 方法访问 wep api。

在我的服务中,我添加了 application/json 的内容类型。我在将数据发送到 api 时将对象转换为 json。我正在使用 HttpClientModule

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

@Injectable()

export class NewServiceService {

baseUrl = "http://localhost:33969/api/";
headers = { headers: new Headers({ 'Content-Type': 'application/json' })
};
obj= {
name:"A",
cgpa: 3
};

_http:any;
constructor(http: HttpClient) {
this._http = http;
}

SaveStudents(){

this._http
.post(
this.baseUrl + 'home/Save',
JSON.stringify(this.obj),
this.headers
)
.subscribe(
res => {
alert("Student Saved!");
},
err => {
alert("Error!");
}
);
}}

在 API 中,

using Entity;
using Microsoft.AspNetCore.Mvc;
using Repo;

namespace API_Core.Controllers
{
[Produces("application/json")]
[Route("api/[controller]/[action]")]

public class HomeController : Controller
{
IStudent _student;
public HomeController(IStudent student)
{
_student = student;
}

[HttpPost]
public Student Save([FromBody]Student s)
{
return _student.Save(s);
}
}
}

在这里,我想将对象捕获为学生模型并对数据执行一些操作。这是学生模型

public class Student
{
[Key]
public int ID { get; set; }

public string Name { get; set; }

public double Cgpa { get; set; }
}

但是当使用prostman时,我可以成功接收该对象。 enter image description here

更新使用 HttpHeaders 而不是 Headers 和 CORS 解决了问题

为 ASP.NET Core 2 启用 CORS =>

在配置服务中:

services.AddCors(options => options.AddPolicy("Cors", builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));

在配置中(usemvc() 上方):

app.UseCors("Cors");

最佳答案

您需要更改以下行

  headers = { headers: new Headers({ 'Content-Type': 'application/json' }) 
};

headers={
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
}

关于asp.net-core-webapi - 415(不支持的媒体类型)角度 4 柱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49726333/

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