我正在尝试使用XmlHttpRequest将FormData对象中的某些值发送到控制器。问题是当我在本地(本地主机)执行此操作时,数据正确映射到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 };
}
答案 0 :(得分:0)
尝试此解决方案:
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 };
}
答案 1 :(得分:0)
经过一番调查,我发现POST由于安全设置而被阻止。