我需要使用纯 Javascript(无 JQuery)提交以编程方式创建的表单。
一切正常,除了到达服务器时不带引号的发布数据(C# JsonConvert.DeserializeObject()
方法无法解析)。
它作为token:a987a87f9k
到达
但是我希望数据以'token':'a987a87f9k'
我应该在此代码中更改什么?
var form = document.createElement("form");
form.setAttribute("id", "noid");
form.setAttribute("method", "post");
form.setAttribute("action", url);
form.setAttribute("target", tabName);
form.setAttribute("style", "display: none;");
var field = document.createElement("input");
field.setAttribute("name", 'token');
field.setAttribute("value", AccountService.GetAuthenticationToken());
form.appendChild(field);
document.body.appendChild(form);
window.open('about:blank', tabName);
form.submit();
读取服务器端:
//content = "token:a987a87f9k";
var content = request.Content.ReadAsStringAsync().Result;
最佳答案
当服务器需要 JSON 时,表单发布以“表单编码格式”将数据发送到服务器。您要么更改服务器上的设置,要么在客户端上使用类似这样的技术:Convert form data to JavaScript object with jQuery
关于javascript - 如何使 form.submit 在 Javascript 引用中分隔发布数据的名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453480/