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

我正在尝试使用 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 };

}


凤凰求蛊
浏览 112回答 2
2回答

MMMHUHU

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

莫回无

试试这个解决方案: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 };    }
打开App,查看更多内容
随时随地看视频慕课网APP