1

昨天,Peter Boughton 提到可以使用 303 重定向转换为刷新友好的 GET 请求

问:这是怎么做到的?假设我有以下表格:

<form method="post">
<button type="submit" name="Save">Save</button>
</form>

那么如何进行 303 重定向以防止用户通过按 F5 提交相同的内容呢?

注意:从 bootstrap 3 开始,我现在使用 button type=submit 来代替 input type=submit。

4

2 回答 2

2

You can use

<cflocation url = "newpage.cfm" addToken = "no" statusCode = "303">

See https://learn.adobe.com/wiki/display/coldfusionen/cflocation for more details

于 2013-11-05T20:21:01.840 回答
0

我正在玩的一个想法是根本不提交表单。相反,我将按钮 type="submit" 更改为 button type="button" 并让 JavaScript 执行 AJAX 调用以保存表单,然后执行 window.replace 以便当用户按下后退按钮时,他们没有浏览器历史的长尾:

这是我的表格:

<form method="post">
   <button type="button" id="Save">Save</button>
</form>

这是我的 JavaScript:

(function() {
    $(document).on('click','#Save',SaveClicked);
    function SaveClicked() {
        var local = {};

        local.data = {};
        local.data.method = 'Save';
        local.dataType = 'text'; // no return value.
        local.Promise = $.ajax('xxx.cfc',local);
        local.Promise.done(done);
        local.Promise.fail(fail);
    }
    function done(data, textStatus, jqXHR) {
        window.location.replace(window.location.pathname);
    }
    function fail(jqXHR, textStatus, errorThrown) {
        debugger;
    }
})();
于 2013-11-14T16:30:29.030 回答