Angular http post 来自 C# 控制器的 formData 不支持的媒体类型

Angular http post formData unsupported media type from C# Controller

我尝试执行的 (Angular) 代码如下所示:

   this.http.post(url, formData, httpOptions).subscribe(  
          (data) => { 
            console.log(data);
          },
          (error) => {
            console.log(error);
          });

表单数据很简单:

const formData = new FormData();
formData.append('listNetworkConstituents', JSON.stringify(params));

尝试了很多选项,包括:

   const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/x-www-form-urlencoded'
      })
    }

我已经验证了参数数据并且 Json 没有遇到任何问题。 Fiddler 确认请求到达服务器然后被拒绝: "server responded with a status of 415 (Unsupported Media Type)"

我知道 FormData 的使用正在其他地方针对此服务器工作。

有什么想法吗?提前致谢。瑜珈

The HTTP 415 Unsupported Media Type client error response code indicates that the server refuses to accept the request because the payload format is in an unsupported format.

The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly.

以上摘录自:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415

请比较 header 中的 content-type 和 content-encoding 并确保正在侦听此呼叫的 URL 期待您发送的类型。

您可以做的事情

  • 转到目标 API/URL 并查看其设置并查看其接受的格式。
  • 使用 Postman 或其他实用程序进行相同的调用并查看它是否通过
  • 比较您发送的 json body 是否有任何问题