Ajax成功function

我正在使用Ajaxpost将表单数据提交到服务器,进行validation,然后根据数据是否有效并可以存储来返回消息。 我在ajaxpost中的成功function并没有运行。 这是ajaxpost和成功消息的显示:

jQuery.ajax({ type:"post", dataType:"json", url: myAjax.ajaxurl, data: {action: 'submit_data', info: info}, success: function(data) { successmessage = 'Data was succesfully captured'; } }); $("label#successmessage").text(successmessage); $(":input").val(''); return false; 

但是,标签上没有显示任何消息。 我尝试将successmessage变量设置为代码中的设定值并显示正常,因此我的成功函数一定有问题,我只是看不清楚什么? 我也试过像这样设置错误回调:

 error: function(data) { successmessage = 'Error'; }, 

但仍然没有显示任何消息。

这是因为Ajax是异步的,当服务器应答客户端时,稍后会调用successerror函数。 因此,只需根据结果将部件移动到您的成功函数中:

 jQuery.ajax({ type:"post", dataType:"json", url: myAjax.ajaxurl, data: {action: 'submit_data', info: info}, success: function(data) { successmessage = 'Data was succesfully captured'; $("label#successmessage").text(successmessage); }, error: function(data) { successmessage = 'Error'; $("label#successmessage").text(successmessage); }, }); $(":input").val(''); return false; 

上面给出的答案无法解决我的问题。所以我将async更改为false以获取警报消息。

 jQuery.ajax({ type:"post", dataType:"json", async: false, url: myAjax.ajaxurl, data: {action: 'submit_data', info: info}, success: function(data) { alert("Data was succesfully captured"); }, });