Payload + URL (msg.url) on Button press for POST request

Ok then use the payload of the button only as a trigger and then use a change node which constructs the msg object completely new.
set msg.url and msg.payload from flow variable (you created before) and send the message into the http request node.

so instead of setting the msg.url in the change node before - do it after the button or just move the change node - as I saw behind your button node.

To press the button - is a complete new trigger and not depended on the construction of the info you want to send - but even if you pass the message through (then you do bypass the button) the msg object is constructed after the button node. So the payload which comes out of the button acts only as trigger and the content is irrelevant as the change node afterwards constructs the message.

In this case you have both the payload and the url in one msg object: