如何在POST表单上设置Header字段?

问题描述 投票:78回答:6

如何在提交表单时在POST标题中设置自定义字段?

javascript html post http-post httprequest
6个回答
54
投票

它无法做到 - AFAIK。

但是,您可以使用例如jquery(尽管您可以使用普通的javascript)来序列化表单并在添加自定义标头时发送(使用AJAX)。

查看jquery serialize,它将HTML FORM更改为准备POST的form-url-encoded值。

UPDATE

我的建议是包括其中之一

  • 隐藏的表单元素
  • 查询字符串参数

13
投票

在页面上设置cookie值,然后将其读回服务器端。

您将无法设置特定标头,但可以在标题部分访问该值,而不是内容正文。


3
投票

来自qazxsw poi文件:

XMLHttpRequest Level 2增加了对新FormData接口的支持。 FormData对象提供了一种方法,可以轻松构造一组表示表单字段及其值的键/值对,然后可以使用FormData XMLHttpRequest方法轻松发送。

使用send(),您可以设置自定义标题,然后执行XMLHttpRequest


2
投票

事实上,更好的方法是在客户端保存cookie。然后,cookie将自动与该特定域的每个页眉一起发送。

在node-js中,您可以使用POST设置和使用cookie。

一个例子:

cookie-parser

现在您可以访问:

res.cookie('token', "xyz....", { httpOnly: true });

请注意,app.get('/',function(req, res){ var token = req.cookies.token }); 确保通常无法手动或通过javascript访问cookie,只有浏览器才能访问它。如果您想使用表单发送一些标题或安全性令牌,而不是通过ajax,在大多数情况下,这可以被认为是一种安全的方式。虽然如果要存储一些敏感的用户相关信息(通常是这种情况),请确保通过安全协议/ ssl发送数据。


1
投票

这是我在pub / jade中所做的

httpOnly:true

0
投票

您可以使用$ .ajax来避免extends layout block content script(src="/jquery/dist/jquery.js") script. function doThePost() { var jqXHR = $.ajax({ type:'post' , url:<blabla> , headers: { 'x-custom1': 'blabla' , 'x-custom2': 'blabla' , 'content-type': 'application/json' } , data: { 'id': 123456, blabla } }) .done(function(data, status, req) { console.log("done", data, status, req); }) .fail(function(req, status, err) { console.log("fail", req, status, err); }); } h1= title button(onclick='doThePost()') Click 的自然行为。例如,您可以向提交按钮添加事件,并将POST请求视为AJAX。

© www.soinside.com 2019 - 2024. All rights reserved.