此资源不支持请求实体的媒体类型 'application/x-www-form-urlencoded'
The request entity's media type 'application/x-www-form-urlencoded' is not supported for this resource
我正在使用 ASPNET Boilerplate 框架开发我的应用程序,但我确信这是一个 WebAPI 特定问题。我正在使用基于以下应用层函数构建的 Dynamic WebAPI 函数。
在我的 Angular 应用程序中,我使用以下代码将 POST 数据传送到动态 API 并最终传送到应用程序层函数。
var formDataObject = new FormData();
formDataObject.append('avatar', vm.group.avatar);
formDataObject.append('name', vm.group.name);
formDataObject.append('description', vm.group.description);
$.ajax({
url: abp.appPath + 'api/services/app/group/CreateGroup',
processData: false,
//contentType: false,
type: 'POST',
data: formDataObject
});
我的 Chrome 控制台收到以下错误:
{"message":"The request entity's media type 'application/x-www-form-urlencoded' is not supported for this resource.","exceptionMessage":"No MediaTypeFormatter is available to read an object of type 'InputGroup' from content with media type 'application/x-www-form-urlencoded'.","exceptionType":"System.Net.Http.UnsupportedMediaTypeException","stackTrace":" at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)"}
我尝试了以下解决方案但没有成功:
- 使用 FormDataCollection 作为参数类型。
- Post 没有文件(头像)对象。失败。
- Post 类型为 application/formdata。失败。
我在网上看到的所有解决方案都不适合我。
好的,我在调试了许多小时后解决了这个问题,所以如果其他人遇到同样的问题可以节省时间。这 不是 WebAPI 问题。 WebAPI 为 'application/x-www-form-urlencoded' 提供 MediaTypeFormatters。此问题是由于 Abp.WebApi 包的某些实施已过时。将您的 aspnet 样板包更新到 2016 年 9 月 28 日发布的 Abp v1.0。修复损坏的代码。并重新编译。这个问题应该解决了。如果您仍有问题,请与我联系,也许我可以提供帮助。
我正在使用 ASPNET Boilerplate 框架开发我的应用程序,但我确信这是一个 WebAPI 特定问题。我正在使用基于以下应用层函数构建的 Dynamic WebAPI 函数。
在我的 Angular 应用程序中,我使用以下代码将 POST 数据传送到动态 API 并最终传送到应用程序层函数。
var formDataObject = new FormData();
formDataObject.append('avatar', vm.group.avatar);
formDataObject.append('name', vm.group.name);
formDataObject.append('description', vm.group.description);
$.ajax({
url: abp.appPath + 'api/services/app/group/CreateGroup',
processData: false,
//contentType: false,
type: 'POST',
data: formDataObject
});
我的 Chrome 控制台收到以下错误:
{"message":"The request entity's media type 'application/x-www-form-urlencoded' is not supported for this resource.","exceptionMessage":"No MediaTypeFormatter is available to read an object of type 'InputGroup' from content with media type 'application/x-www-form-urlencoded'.","exceptionType":"System.Net.Http.UnsupportedMediaTypeException","stackTrace":" at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)"}
我尝试了以下解决方案但没有成功:
- 使用 FormDataCollection 作为参数类型。
- Post 没有文件(头像)对象。失败。
- Post 类型为 application/formdata。失败。
我在网上看到的所有解决方案都不适合我。
好的,我在调试了许多小时后解决了这个问题,所以如果其他人遇到同样的问题可以节省时间。这 不是 WebAPI 问题。 WebAPI 为 'application/x-www-form-urlencoded' 提供 MediaTypeFormatters。此问题是由于 Abp.WebApi 包的某些实施已过时。将您的 aspnet 样板包更新到 2016 年 9 月 28 日发布的 Abp v1.0。修复损坏的代码。并重新编译。这个问题应该解决了。如果您仍有问题,请与我联系,也许我可以提供帮助。