将表单数据作为 json 发送到 angularjs 应用程序
Posted
技术标签:
【中文标题】将表单数据作为 json 发送到 angularjs 应用程序【英文标题】:send formdata as json to an angularjs application 【发布时间】:2019-06-15 23:12:34 【问题描述】:有一个网页,在 AngularJS 上构建并登录。
我需要在我的页面上对其进行 iframe,并在网站上自动登录我的用户。 查看 angularJS 站点,登录过程正在等待一个 json 对象。
我尝试了几种方法。提交一个数组,在js中创建一个json对象并发送。但没有任何效果。
json 必须如下所示:
'TAKE':
'username': 'whatever',
'password': 'whatever'
我最接近的解决方案是通过 js 创建一个 json 并将其与表单一起发送。问题是,在请求中,像 和 '" 这样的符号被编码为:
%22%3A%7B%22
我用的JS:
function submitAsJSON(form)
var json = "'TAKE':'username': 'whatever','password': 'whatever'";
var JSONString = JSON.stringify(json);
var newForm = "<form method='POST' action='" + $(form).attr('action') + "'>" +
"<input name='" + JSONString + "'>" +
"</form>"
$(newForm).appendTo('body').submit();
还在查看 chrome 中的标题,等待中:
content-type: application/json
但我正在发送:
Content-Type: application/xml;
如何发送 json 让用户自动登录?
【问题讨论】:
您尝试过的一些代码对于追踪问题非常有帮助。 我在我的问题中编辑了 js 直接提交表格怎么样:form.submit()
应用程序仅接受每个帖子的 json,因此仅提交表单会将它们作为数组发送
我要补充一点,var JSONString = JSON.stringify(json);
在这种情况下看起来真的很奇怪 - 你的 json
变量已经是一个字符串。你为什么要对字符串进行字符串化是一个谜。您的 json
var 本身几乎是有效的字符串化 json,如果它像 json = \"username\":\"test\",\"password\":\"test\"
那么它将是有效的字符串化 json,您可以对其进行解析
【参考方案1】:
检查这是否适合您将表单数据转换为 JSON。 对于自动登录,您必须在服务端处理:
var formData = JSON.stringify($("#theFormID").serializeArray());
【讨论】:
以上是关于将表单数据作为 json 发送到 angularjs 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angularjs 和 Nodejs 从 HTML 表单另存为 JSON 文件
我想将图像 URL 作为 json 数据上传到我的 Angular 表单并将其发送到服务器。图片 URL 来自服务器响应