将表单数据作为 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 文件

如何将 HTML 表单数据作为 JSON 发送到服务器?

我想将图像 URL 作为 json 数据上传到我的 Angular 表单并将其发送到服务器。图片 URL 来自服务器响应

AngularJS 将 json 绑定到表单输入

将 json 对象从 jquery 发送到 angularjs 并使用 ng-repeat

AFNetworking 将参数作为表单数据发送