.NET/C#项目POST请求本地正常生产环境偶发400错误求助
.NET/C# 生产环境POST请求偶发HTTP 400错误求助
我用.NET/C#开发的系统中,Leaflet地图上的机场标记被点击后会弹出带提交按钮的弹窗,点击按钮发送POST请求。该功能在本地测试100%正常,但生产环境仅约30%的请求能成功,偶尔会出现HTTP 400错误。服务器日志仅显示400错误,无额外详情;Chrome调试工具检查表单渲染未发现异常,怀疑是否为CORS问题?
前端表单代码
var circleMarker = L.circleMarker(latlng).addTo(map) .bindPopup(airports[i].ident + "</br>" + "<form method='post'>" + "<input type='hidden' name='newloc' value='" + airports[i].airport_id + "' />" + '@Html.AntiForgeryToken()' + "<input type='submit' value='Move to Location' name='teleport'></input></form>");
后端处理代码
[HttpPost] public async Task<IActionResult> OnPostAsync([Bind("id")] Job job, IFormCollection form, string selectjob, string teleport) { var user = await _userManager.GetUserAsync(User); if (!string.IsNullOrEmpty(selectjob)) { user.current_job = _context.Job.Where(j => j.id == job.id).First(); await _userManager.UpdateAsync(user); } if (!string.IsNullOrEmpty(teleport)) { user.Location = Int32.Parse(form["newloc"]); await _userManager.UpdateAsync(user); } return RedirectToPage("./Dashboard"); }
渲染后的表单HTML
<form method="post"> <input type="hidden" name="newloc" value="17302"> <input name="__RequestVerificationToken" type="hidden" value="CfDJ8OoeUjhqYOBItKQtRChxbUpYINiLWHuPop-RRcULHf5ufX7TwaYDL-n0e616JwgKaFvoKBkMdpB-x8d0O1t4wRwtQwOmuQmXbrRzLhSHqXk7p89PcMqw6fRHMnOzSdeaPnLKqtJX2W2HIi27gdk4OPf1lvWrYf6BMo3vwj_BIfyTd47riV3bMVQqrhhgkfF--w"> <input type="submit" value="Move to Location" name="teleport"> </form>
完全无法理解为何是偶发错误而非每次失败!
失败请求的Payload
newloc: 17302 __RequestVerificationToken: CfDJ8PWE3AZ4v3JCjpPeI7CNjot20zZi9doxfgnx-V4oajQTujWMypvxHwW7REtc_eL_dnxh6eqYdtbdhvckN-HZIgYtCoYbWsGJJ-_bl-tkfMIExLd-ylnmJfCTpAJxWTz1-QYy2Y2n8uy9rfFumDmVFYHvy2rZGCuQ_NDd-QABR2Ja3qoOPuV37HamjAurMG7GQw teleport: Move to Location
开发者工具网络标签页截图

内容的提问来源于stack exchange,提问作者Zachary Lehmann
相关产品推荐
相关产品推荐

