【问题标题】:Ajax call only after data was checked in Client JS?仅在客户端 JS 中检查数据后才调用 Ajax?
【发布时间】:2020-07-17 07:39:30
【问题描述】:

在 JS 中验证表单后,我将此数据发送到 MVC PHP 后端并且不想再次检查数据。什么是,如果有人使用不正确的数据进行邮递员请求?有没有办法确保ajax请求只能在客户端成功检查数据后触发?

【问题讨论】:

  • 您永远不能依赖客户端验证。它可以是一个助手,以避免在用户输入数据时发出额外的请求。但你应该只“相信”服务器检查的内容
  • 您必须确保在客户端和服务器端都检查数据,这正是您所说的原因:有人可能从其他来源发布数据。即使您使用某种形式的身份验证(例如会话的令牌 (JWT)),也可能有人发布了错误的数据。所以这里真的没有逃脱:你必须至少在服务器端进行验证。您可以使用 CORS 机制(以了解您的呼叫来自何处),但这也很容易被欺骗。 (stackoverflow.com/questions/21058183/…)

标签: javascript php ajax model-view-controller request


【解决方案1】:

如果您需要在客户端验证数据,您可以使用:

1:jQuery验证器插件+ajax提交you can see this question

2 : beforeSend 函数

$.ajax({
    url: yourURL,
    beforeSend: function(xhr) {
        //You can check your data here and store in isValid variable.

        var isValid = false; // Based on your validation check.

        if (!isValid) {
            // Prevent the request to be sent to the (web)server.
            xhr.abort();
        }
    }
})
.done(function(data) {
    // after submitting
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多