我在Node.js中使用request.js来获取http请求。
return render_template("index.html",keys=my_keys,Name=my_name,Email=my_email)
假设当我将request({
method: 'POST',
uri: 'http://www.example.com/getData',
followAllRedirects: true,
followOriginalHttpMethod: true,
json: true,
form: {
id: 1,
msg: 'Test data',
},
}, (err, res, body) => {})
发布到{ id: 1, msg: 'Test data' }
时,代理会重定向到http://www.example.com/getData
。
上述代码会重定向到http://us.example.com/getData
,但如何设置重定向和帖子数据?
答案 0 :(得分:0)
如果不是不可能的话,这很难做到。
如果重定向是通过发送" 301永久移动"或" 302发现" HTTP状态代码然后在实践中它就好像它是" 303见其他"已发送,即 GET请求 且未在正文中发送。
请参阅维基百科上的List of HTTP status codes:
这是与标准相矛盾的行业惯例。 HTTP / 1.0规范(RFC 1945)要求客户端执行 临时重定向(原始描述短语是"移动 暂时"),但流行的浏览器实现302与 303的功能见其他。因此,HTTP / 1.1添加状态 代码303和307来区分这两种行为。 但是,某些Web应用程序和框架使用302状态代码 好像是303。
有一个" 307临时重定向" (自HTTP / 1.1)创建以解决不允许更改HTTP方法的问题 - 因此POST的重定向应该仍然是POST - 请参阅维基百科:
在这种情况下,请求应该使用另一个URI重复; 但是,未来的请求仍应使用原始URI。在 与历史上实施302的方式形成鲜明对比的是请求方法 重新发出原始请求时不允许更改。对于 例如,应使用另一个POST重复POST请求 请求。
但是,如果这种情况适用于特定情况很难说,因为它取决于您调用的API,并且需要更改该API实现。