为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 XmlHttpRequest 发送 FormData 并映射到视图模型属性

如何使用 XmlHttpRequest 发送 FormData 并映射到视图模型属性

C#
凤凰求蛊 2023-04-16 09:53:47
我正在尝试使用 XmlHttpRequest 将 FormData 对象中的一些值发送到控制器。问题是当我在本地 (localhost) 执行此操作时,数据会正确映射到 ViewModel 的属性,并且一切正常。当我在我们的生产环境中尝试这样做时,似乎这些值没有映射到 ViewModel。(发布发生在同一个 url 上)- 是否有任何我不知道的安全检查?- 有没有人有任何建议做什么或去哪里看?JS:var payload = new FormData();payload.append('TestTitle', $('#TestTitle').text());payload.append('TestId', $('#TestId').val());payload.append('TestGuid', $('#TestGuid').val());var xhr = new XMLHttpRequest();xhr.addEventListener('readystatechange', onStateChange);xhr.open('POST', '/test/savetest?rand=' + Math.random());xhr.send(payload);------C#:[HttpPost]public ActionResult SaveTest(TestViewModel model){   if (ModelState.IsValid)   {       //do stuff   }   return new JsonResult() { Data = new { Success = false }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };}
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

经过一番调查后,我发现 POST 由于安全设置而被阻止。



查看完整回答
反对 回复 2023-04-16
?
莫回无

TA贡献1865条经验 获得超7个赞

试试这个解决方案:


JS:


    var payload = new FormData();

    payload.append('TestTitle', $('#TestTitle').text());

    payload.append('TestId', $('#TestId').val());

    payload.append('TestGuid', $('#TestGuid').val());


    var xhr = new XMLHttpRequest();

    xhr.addEventListener('readystatechange', onStateChange);

    xhr.open('POST', '/test/savetest?rand=' + Math.random(),false);

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    xhr.send(payload);


    ------

    C#:

    [HttpPost]

    public ActionResult SaveTest(TestViewModel model)

    {

       if (ModelState.IsValid)

       {

           //do stuff

       }

       return new JsonResult() { Data = new { Success = false }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };

    }


查看完整回答
反对 回复 2023-04-16
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信