如何将对象数组发送到服务器。 Asp.Net Core 3.1 405 方法不允许
Posted
技术标签:
【中文标题】如何将对象数组发送到服务器。 Asp.Net Core 3.1 405 方法不允许【英文标题】:how to send array of object to server. Asp.Net Core 3.1 405 Method Not Allowed 【发布时间】:2022-01-15 10:42:02 【问题描述】:我正在尝试将对象数组发送到 Web Api post ActionResult 方法。 我的对象数组如下所示
'["TitleFeature":"عنوان یک","ValueFeature":"مقداریک","IdProduct":"1","TitleFeature":"عنوان یک","ValueFeature":"مقداریک","IdProduct":"1"]'
我的函数 JS 是这样的
const uri = '/api/Feature/PostFeatures';
const baseURL = window.location.origin;
var dataFeature = getFeature();
var features = JSON.stringify(dataFeature);
$.ajax(
contentType: "application/json",
dataType: 'json',
type: "POST",
url: (baseURL + uri),
data: features,
);
我的 Controller.cs 是这样的
[HttpPost]
[AllowAnonymous]
public async Task<ActionResult<Feature>> PostFeatures([FromBody] List<Feature> features)
if (features != null)
foreach (var item in features)
_context.features.Add(item);
await _context.SaveChangesAsync();
return Ok();
我使用基于角色的授权,这是我的角色:
[Route("api/[controller]")]
[ApiController]
[Authorize(Roles = "admin")]
public class FeatureController : ControllerBase
如何修复错误 405?
【问题讨论】:
尝试将 ajax 请求中的数据替换为:data: features
,注意大括号。并确保在 Startup.cs 中配置了 CORS 策略
我将 WebAPI 控制器替换为 razore 控制器并实现 CORS。我将视图中的数据传递给控制器,但出现了一个新问题。我无法在函数参数中获取 功能列表。我从视图中得到了空值。 @HassanMonjezi
【参考方案1】:
405
错误表示你输入了url但是http请求不匹配,所以如果你的action方法上没有route属性,可以尝试将ajax请求地址改为.../api/Feature
【讨论】:
以上是关于如何将对象数组发送到服务器。 Asp.Net Core 3.1 405 方法不允许的主要内容,如果未能解决你的问题,请参考以下文章
如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?
使用 jQuery 将 JSON 对象成功发送到 ASP.NET WebMethod
如何将int数组发送到post web api c#asp.net [重复]
我可以通过 ASP.NET 将对象从客户端 javascript 发送到服务器端代码吗?