То, что я пытаюсь сделать, кажется очень простым, но я не могу понять это. Прямо сейчас я делаю простой
<form action="{POST URL}"><button type="submit"></buttton></form>
Где пользователь затем нажимает кнопку отправки, которая помещает их на страницу другого сайта. Что я хочу сделать, так это POST пользователь с моего сервера NodeJS здесь:
app.get('/auth', function (req, res) {
apiClient.generateAccessToken(integratorKey, clientSecret, req.query.code, function (err, oAuthToken) {
console.log("************ACCESS TOKEN**************")
console.log(oAuthToken.accessToken);
accessToken = oAuthToken.accessToken;
apiClient.addDefaultHeader('Authorization', 'Bearer ' + accessToken);
// res.post(req.url);
res.send('<html lang="en"><body><form action="${req.url}" method="post">
<input type="submit" value="Sign the document!"
style="width:13em;height:2em;background:blue;color:white;font:bold 1.5em arial;margin: 20px auto; display: block;"/>
</form></body>')
});
})
Это возможно?
Используйте javascript для отправки формы: document.getElementById('frm').submit()
Демо-версия:
res.send('<html lang="en"><body><form id="frm" action="${req.url}" method="post">
<input type="submit" value="Sign the document!"
style="width:13em;height:2em;background:blue;color:white;font:bold 1.5em arial;margin: 20px auto; display: block;"/>
</form><script>document.getElementById('frm').submit()</script></body>')
Однако вы не можете передавать другие заголовки (например, Authorization
) формой POST. Если вы хотите все контролировать, вы должны использовать собственный HTTP-клиент для публикации запроса вместо браузера пользователя.