【问题标题】:Adding custom headers to form submit添加自定义标题以提交表单
【发布时间】:2018-10-02 20:11:27
【问题描述】:

我在我的一个项目中使用 angular 4,并且我有一个方法可以动态创建表单元素并提交它

postToUrl(path, params, method) {
        method = method || 'post';
        let form = document.createElement('form');
        form.setAttribute('method', method);
        form.setAttribute('action', path);
        for (let key in params) {
            if (params && params.hasOwnProperty(key)) {
                let hiddenField = document.createElement('input');
                hiddenField.setAttribute('type', 'hidden');
                hiddenField.setAttribute('name', key);
                hiddenField.setAttribute('value', params[key]);
                form.appendChild(hiddenField);
            }
        }
        document.body.appendChild(form);
        form.submit();
        setTimeout(() => {
            document.body.removeChild(form);
        }, 2000);
    }

我想要做的是为请求设置一个自定义标头,以便我可以附加服务器所需的所有标头。有什么办法可以为此编写一个通用的拦截器,这样我就不必重复这些行了。请帮忙。任何帮助表示赞赏。

【问题讨论】:

  • 你为什么要这样发帖?即使你没有使用角度
  • 这个帖子调用是为了下载一个大文件。我想将控制权交给浏览器,这样我就不必在结果出现时将其存储在浏览器缓存中。如果我使用 angular post,我可能不得不最终使用 filesaver 或 streamsaver 并且文件将存储在内存中直到它被下载。至少这就是我的想法..
  • 我有类似的问题,我想在其中添加自定义标题,有什么想法吗?

标签: javascript angular javascript-objects angular4-httpclient


【解决方案1】:

我无法完全理解您的要求,但如果您使用的是 Angular,那么您可以通过 HTTPClient 模块添加和拦截标头(客户端)

这是另一个可能对您有所帮助的答案。

https://stackoverflow.com/a/47393331/6841216

【讨论】:

  • post调用是下载一个大文件。我想将控制权交给浏览器,这样当结果出现时我就不必存储在浏览器缓存中。如果我使用 angular post,我可能最终不得不使用 filesaver 或 streamsaver 并且文件将存储在内存中直到它被下载。至少这就是我的想法。
猜你喜欢
  • 2011-12-27
  • 2015-10-20
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 2019-03-11
相关资源
最近更新 更多