Angular 8 - POST + 重定向与提交 HTML <form> 完全一样,但不使用 DOM

标签 angular forms angular-reactive-forms

有很多这样的问题,但没有一个能完全理解。 我需要复制的旧功能使用 Angular JS 创建一个表单,附加它,然后提交。它同时发出带有数据和重定向的 POST 请求。我不打算像那样按字面意思运行它...如果我按字面意思通过 HttpClient 运行 Post 请求,然后重定向到 URL,最终用户基本上只会向该 URL 发出 GET 请求。因此,这必须以某种方式通过表单来完成。

一个服务运行这个函数,所以没有直接关联的模板文件。

我们正在复制旧的 AngularJS 代码。旧代码创建一个表单元素,添加内容,将其直接附加到 DOM,然后提交:

var input = angular.element('<form>', {
  action: '/someUrl.go',
  method: 'POST'
});
form.append(angular.element('<input>', {
  value: someValue,
  name: someKey
}));
form.appendTo('body').submit();

我正在寻找一种更好的方法来在 Angular 8 中做同样的事情。 我知道我可以只使用 Javascript 和 DOM 操作,但必须有更好的方法。

我觉得按照这些思路使用 Javascript 是不对的:

let form = document.createElement('form');
form.action = '/someUrl.go';
form.method = 'POST';
let input = document.createElement('input');
input.name = "someKey";
input.value = "someValue";
input.type="hidden";
form.appendChild(input);
document.body.appendChild(form);
form.submit();

我确实浏览了关于这个主题的答案 ( JavaScript post request like a form submit ),但它们仍然是 DOM 操作、javascript 或 jQuery。 我怎样才能使用 typescript 和 angular 的工具箱“正确地”做到这一点?

最佳答案

  var form = document.createElement("form");
   form.method = "POST";
   form.action = "https://somewebsite.comd/somepage";
   form.style.display = 'none';
  
   // form['Content-Type'] =  'application/x-www-form-urlencoded';
   // form['Accept'] = 'application/json';
   // above attributes are not valid


  var account_number = document.createElement("input");
   account_number.value='xxxxxxxxx';
   account_number.name='account_number';
   form.appendChild(account_number);

 document.body.appendChild(form);
 form.submit();                       // will submit the form

关于Angular 8 - POST + 重定向与提交 HTML <form> 完全一样,但不使用 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61113841/

相关文章:

javascript - 无法根据条件更改输入背景

javascript - 我如何像 React 一样在 Angular 2+ 中传递 Prop ?

javascript - 如何在日期之前/之前禁用/启用输入元素?

Angular 10 : Dynamically add input element for nested FormArray inside FormBuilder

angular - 我们如何在 Angular 7 中为绝对路径配置 Stylus?

javascript - 响应式(Reactive)(基于模型)形式的 Angular 2 md-radio 按钮不起作用并停止 md-input 显示

php - 从隐藏的表单字段发布 JSON

php - wordpress Contact form 7 验证未与相应的输入对齐

angular - PrimeNg ui-float-label 在 react 形式 patchValue() 后不 float

Angular 2 - 响应式(Reactive)表单验证消息