【问题标题】:Referencing data sent in an AJAX request引用在 AJAX 请求中发送的数据
【发布时间】:2014-05-25 00:26:29
【问题描述】:

假设我正在使用 jQuery 发送以下 AJAX 请求:

$.ajax({
    type: 'POST',
    async: true,
    url: '<?=$_SERVER['PHP_SELF'] ?>?date=<?=$date ?>',
    data: $('#dateform').serialize(),
    dataType: 'json',
    success: function (data) {
        alert('Successful for date ' + data['date']);
    },
    error: function (data) {
        alert('Error for date ' + data['date']);
    }
});

如果服务器返回 JSON 中的“数据”元素,则一切正常,可以读取警报。

但是,如果出现错误阻止返回发送的日期,AJAX 请求如何检测错误函数中发送的日期值?这是假设用户在服务器有机会响应之前选择了不同的日期,因此#dateform 中的date 元素将不再代表与请求一起发送的日期。

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    在提交ajax帖子之前将date的值保存到一个变量中,并在错误函数中引用这个变量的值。

    【讨论】:

    • 想到了这一点,但随后注意到用户正在更改日期并在前一个过程完成之前重新提交 AJAX 表单。这随后导致变量值在前一个服务器端进程完成之前被更改。这是我想允许但要考虑的行为,因为服务器端进程可以同时运行相当长的一段时间,并在结果出现在用户视图中时显示结果。
    • 只要确保变量是发起 ajax 请求的函数的本地变量,而不是全局变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2011-05-22
    • 2020-01-11
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多