仅在客户端 JS 中检查数据后才调用 Ajax?
Posted
技术标签:
【中文标题】仅在客户端 JS 中检查数据后才调用 Ajax?【英文标题】:Ajax call only after data was checked in Client JS? 【发布时间】:2020-07-17 07:39:30 【问题描述】:在 JS 中验证表单后,我将此数据发送到 MVC php 后端并且不想再次检查数据。什么是,如果有人使用不正确的数据进行邮递员请求?有没有办法确保ajax请求只能在客户端成功检查数据后触发?
【问题讨论】:
您永远不能依赖客户端验证。它可以是一个助手,以避免在用户输入数据时发出额外的请求。但你应该只“相信”服务器检查的内容 您必须确保在客户端和服务器端都检查数据,这正是您所说的原因:有人可能从其他来源发布数据。即使您使用某种形式的身份验证(例如会话的令牌 (JWT)),也可能有人发布了错误的数据。所以这里真的没有逃脱:你必须至少在服务器端进行验证。您可以使用 CORS 机制(以了解您的呼叫来自何处),但这也很容易被欺骗。 (***.com/questions/21058183/…) 【参考方案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
);
【讨论】:
以上是关于仅在客户端 JS 中检查数据后才调用 Ajax?的主要内容,如果未能解决你的问题,请参考以下文章
页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应