You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 4 POST请求报415(不支持的媒体类型)错误求助

Angular 4 HttpClient POST 请求到 Web API 正确实现指南

我来帮你梳理下代码里的关键问题,再给你一套能正常工作的实现方案:

1. 先揪出代码里的小错误

你当前代码里用的Headers是旧版HttpModule的API,而HttpClientModule对应的是HttpHeaders,必须从@angular/common/http导入,否则会导致Content-Type头设置无效。另外,HttpClient的post方法会自动帮你把JS对象序列化为JSON,完全不需要手动调用JSON.stringify(),手动转换反而可能引发格式问题。

2. 修正后的完整服务代码

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http'; // 导入正确的HttpHeaders

@Injectable()
export class NewServiceService {
  baseUrl = "http://localhost:33969/api/";
  
  // 正确创建请求头配置
  private httpOptions = {
    headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  };

  constructor(private http: HttpClient) { } // 注入HttpClient实例

  // 封装POST请求方法
  sendStudentData() {
    const studentObj = { name:"A", cgpa: 3 };
    // 直接传入对象,HttpClient自动完成JSON序列化
    return this.http.post(`${this.baseUrl}your-endpoint-name`, studentObj, this.httpOptions);
  }
}

3. 组件中调用服务的正确姿势

别忘了在组件里订阅Observable才能真正触发请求:

import { Component } from '@angular/core';
import { NewServiceService } from './new-service.service';

@Component({
  selector: 'app-root',
  template: '<button (click)="submit()">提交数据</button>'
})
export class AppComponent {
  constructor(private studentService: NewServiceService) { }

  submit() {
    this.studentService.sendStudentData().subscribe(
      res => console.log('请求成功返回:', res),
      err => console.error('请求出错:', err)
    );
  }
}

4. Web API端的配套注意点

确保你的Web API接口能正确接收JSON数据:

  • 定义匹配的接收模型:
    public class StudentDto
    {
        public string Name { get; set; }
        public decimal Cgpa { get; set; }
    }
    
  • 接口方法标记[FromBody]来解析JSON:
    [HttpPost]
    public IActionResult CreateStudent([FromBody]StudentDto student)
    {
        if (!ModelState.IsValid) return BadRequest(ModelState);
        // 后续业务逻辑
        return Ok("数据接收成功");
    }
    
  • 如果Angular和API不在同一端口,记得在API端配置CORS,否则浏览器会拦截跨域请求。

内容的提问来源于stack exchange,提问作者Jaowat Raihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:22:52