Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向表单提交添加自定义标题_Javascript_Angular_Javascript Objects_Angular4 Httpclient - Fatal编程技术网

Javascript 向表单提交添加自定义标题

Javascript 向表单提交添加自定义标题,javascript,angular,javascript-objects,angular4-httpclient,Javascript,Angular,Javascript Objects,Angular4 Httpclient,我在我的一个项目中使用angular 4,我有一个方法可以动态创建表单元素并提交它 postToUrl(path, params, method) { method = method || 'post'; let form = document.createElement('form'); form.setAttribute('method', method); form.setAttribute('action', path);

我在我的一个项目中使用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,则可以通过HTTPClient模块添加和截取标题(客户端)

这是另一个可能对你有帮助的答案


你为什么要这样做?即使你没有使用Angular,这个post调用也是为了下载一个巨大的文件。我想把控制权交给浏览器,这样当结果出现时我就不必存储在浏览器缓存中。如果我使用angular post,我可能最终不得不使用filesaver或streamsaver,文件将存储在内存中直到下载。至少我是这么想的。我有类似的问题,我想添加自定义头,有什么想法吗?post调用是下载一个大文件。我想把控制权交给浏览器,这样当结果出现时我就不必存储在浏览器缓存中。如果我使用angular post,我可能最终不得不使用filesaver或streamsaver,文件将存储在内存中,直到下载为止。至少我是这么想的。