AJAX设置光标离开自动提交,Ajax自动提交和刷新页面

博主在尝试使用Ajax和jQuery无刷新提交表单时遇到问题,页面仍然自动刷新并导致数据重复插入。虽然服务器端逻辑似乎正常工作,但CSRF令牌出现在URL中,导致数据未正确提交。更新后的jQuery代码添加了提交按钮事件监听,但仍存在表单信息提交不完整的问题,只有CSRF令牌被提交。
摘要由CSDN通过智能技术生成

所以,我是新来的ajax,我试图使用ajax和jquery提交表单,我想我有服务器端逻辑都想通了,因为当我加载页面它会自动提交并且页面刷新速度非常快。空白表单将进入数据库,但其中有很多内容,因为页面会一直提交每次刷新。所以我认为我的服务器端正在工作,但我不知道要做什么来阻止它刷新,还要使用我在html表单中提交的提交按钮进行提交。我在我的html页面中使用了thymeleaf。Ajax自动提交和刷新页面

这是我的HTML表单,使用thymeleaf

这是我的jQuery和AJAX

/*

var postId = /*[[${post.id}]]*/'1';

var token = $("meta[name='_csrf']").attr("content");

var header = $("meta[name='_csrf_header']").attr("content");

$(document).ajaxSend(function(e, xhr, options) {

xhr.setRequestHeader(header, token);

});

$(function() {

$.ajax({

url : "newComment",

type : "post",

data : {

"postId" : postId,

"newComment" : $("#newComment").val()

},

success : function(data) {

console.log(data);

location.reload();

},

error : function() {

console.log("There was an error");

}

});

});

/*]]>*/

在此先感谢。

UPDATE

所以现在当我提交表单的页面刷新和URL做一些奇怪的事情,并显示CSRF令牌,并没有提交到数据库中的数据。因此,当我提交http://localhost:8080/viewCourse/post/1?_csrf=abefbd5b-392e-4c41-9d66-d66616fc4cc7时,如果我取消了所做的更改并将其放回到刷新循环中,并且如果我可以在表单中获取任何文本,在页面刷新之前它实际上会提交到数据库,所以我认为这意味着我有一个有效的网址,因为它有点作品。我真的不知道是什么原因造成的,但表单似乎没有提交正确的信息,只有csrf标记。这里是我的最新的jQuery,Ajax和HTML

jQuery的 //

var postId = /*[[${post.id}]]*/'1';

var token = $("meta[name='_csrf']").attr("content");

var header = $("meta[name='_csrf_header']").attr("content");

$(document).ajaxSend(function(e, xhr, options) {

xhr.setRequestHeader(header, token);

});

$("#submit").click(function() {

$.ajax({

url : "newComment",

type : "post",

data : {

"postId" : postId,

"newComment" : $("#newComment").val()

},

success : function(data) {

console.log(data);

location.reload();

},

error : function() {

console.log("There was an error");

}

});

});

/*]]>*/

和我的更新HTML

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现提交评论并自动刷新,可以通过以下步骤使用 AJAX: 1. 创建一个包含评论表单和显示评论的 HTML 页面。 2. 在页面中添加一个用于触发 AJAX 请求提交按钮。 3. 使用 AJAX 发送评论数据到服务器。可以使用 jQuery 的 $.ajax() 函数来实现。具体来说,可以使用以下代码: ``` $.ajax({ type: "POST", url: "submit_comment.php", data: $("#comment_form").serialize(), success: function() { // 处理成功响应 }, error: function() { // 处理错误响应 } }); ``` 其中,submit_comment.php 是用于处理提交评论的 PHP 脚本,#comment_form 是包含评论表单的表单元素的 ID。 4. 在服务器端处理提交评论的逻辑,并将结果返回给客户端。例如,可以将提交的评论保存到数据库中。 5. 在 AJAX 请求成功后,使用 JavaScript 更新评论列表。例如,可以使用以下代码: ``` $.ajax({ type: "POST", url: "get_comments.php", success: function(data) { $("#comment_list").html(data); }, error: function() { // 处理错误响应 } }); ``` 其中,get_comments.php 是用于获取评论列表的 PHP 脚本,#comment_list 是显示评论的元素的 ID。 6. 将以上步骤封装到一个函数中,并在页面加载时调用该函数。同时,可以使用 setInterval() 函数定时调用该函数,以实现自动刷新评论列表的效果。例如,可以使用以下代码: ``` function refreshComments() { $.ajax({ // 发送评论数据到服务器 }).done(function(){ // 更新评论列表 }); } $(document).ready(function() { // 页面加载时刷新评论列表 refreshComments(); // 每隔 10 秒钟自动刷新评论列表 setInterval(refreshComments, 10000); }); ``` 这样就可以实现提交评论并自动刷新的效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值