Ajax Firefox中的ASP.NET核心API POST参数始终为空
在我的Ajax Firefox中的ASP.NET核心API POST参数始终为空,ajax,.net-core,angular2-services,Ajax,.net Core,Angular2 Services,在我的Angular2应用程序中,我正在提交一个表单,并通过postapi将数据发送到dotnet核心后端。我已经创建了一个新表单,它可以与chrome一起正常工作,但是在firefox上,我在PostAPI参数中接收到空值 我被困在搜索什么和如何搜索??我已经检查了所有可能的问题,但没有发现任何问题,因为应用程序在chrome上运行良好,所有数据都是最新的和正确的,但是一个表单在firefox上无法运行 有人能帮我做什么吗?因为我完全被卡住了 不知道该怎么办 我的端点是 [HttpPost]
Angular2应用程序中
,我正在提交一个表单,并通过postapi将数据发送到dotnet核心后端
。我已经创建了一个新表单,它可以与chrome一起正常工作,但是在firefox上,我在PostAPI参数中接收到空值
我被困在搜索什么和如何搜索??我已经检查了所有可能的问题,但没有发现任何问题,因为应用程序在chrome上运行良好,所有数据都是最新的和正确的,但是一个表单在firefox上无法运行
有人能帮我做什么吗?因为我完全被卡住了
不知道该怎么办
我的端点是强>
[HttpPost]
[Route("api/Intimation/SaveIntimation")]
public async Task<ActionResult> SaveIntimation([FromBody] ViewModelCreateIntimation objCreateIntimation)
{
if (objCreateIntimation == null || objCreateIntimation.objIntimation == null)
{
return Ok("null received");
}
// remaining code
}
从服务发送的数据(我可以检查数据的最后一个位置)
问题似乎是因为控制器中的参数名称与请求中传递的参数名称不同 在您的控制器中,框架试图绑定到的参数称为
objCreateIntimation
,但您的请求表明您正在发送objinitimation
。由于名称不同,模型绑定器不知道objinitimation
应该绑定到objCreateIntimation
给他们两个取一个相同的名字,这样你就可以解决问题了。我也读过一次同样的问题,花了将近一天的时间才弄清楚背后的原因 一定要检查日期选择器及其值,确保它不为null,并且格式正确。因为firefox在这一点上有点严格,datepicker的一点小小的改变就会使其为空
希望能对您有所帮助。请发布表单代码和控制器操作。代码太多了,我应该全部发布吗?是的,请发布,否则很难说出发生了什么。另请参见。在两个浏览器中使用开发人员工具。比较他们提出的请求。看看有什么不同。@SergeyKudriavtsev我添加了一些代码。我也尝试更改这些名称。但没有区别。关键是它在这上面工作得很好chrome@NullPointer如果您尝试更改它们,可能是因为本地缓存了名称错误的脚本。刷新浏览器缓存。@NullPointer好的,请确保名称相同,因为这绝对是必需的。在那之后,可能有必要检查每个请求中发送的标题,因为Firefox在许多方面比Chrome严格得多。
saveIntimation(intiModel) {
console.log(intiModel);
return this.httpClient.post<ViewModelResponse>(this.baseUrl + this._SubmitIntimationUrl, JSON.stringify(intiModel), { headers: this.configurations.getHeaderWithAuth() });
}
this.intimationModel = this.admissionForm.value;
this.adminService.SubmitAdmissionIntimationService(this.createIntimationModel).subscribe(
(response) => {
this.responseModel = response;
// further process
},
(error) => {
this.notification.onClear();
this.notification.onError(this.errorHandler.handleError(error).error, Constants.MESSAGE_ERROR);
}
);