Via AJAX
As far as I know, there is no way to force Safari to resend POST data during the update. The only way to "fix" this problem is to separate the logic from the document in which the result is displayed. In practical terms, I mean that you can call the logic you want from the code using an AJAX request, while the document itself will be a (relatively) dumb page.
So what do you get:
POST document.ext
print "<script>"
print "POSTdata = " + JSONEscape(POSTdata) + ";"
print "var doAction = function(){"
print " ajax('action.ext', POSTdata, function(result){});"
print "});"
print "</script>"
print "<button onclick='doAction()'>Refresh</button>"
POST action.ext
:
, - - - <form action='?' method='POST'>, submit. print POSTdata, Ajax <form>. , , , AJAX . Google-fu , .