Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery AJAX和200条OK消息:完成服务器端调用需要它们吗?_Jquery_Ajax_Wordpress - Fatal编程技术网

Jquery AJAX和200条OK消息:完成服务器端调用需要它们吗?

Jquery AJAX和200条OK消息:完成服务器端调用需要它们吗?,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,我们正在开发一个跟踪系统,使用WordPress ajax API在WordPress环境中连续进行3次ajax调用,第3次调用时刷新页面 我注意到有时我的数据输入尝试在后端失败,我假设(可能是错误的)这是因为我们的最后一个Ajax调用在前一个调用清除200 OK之前完成,并中断连接,这意味着数据永远不会被存储 现在我的印象是,只要发出jQuery.ajax({type:'POST'调用,我就可以立即关闭页面,并且我发布到的服务器端仍然可以接收并处理数据,而不管连接发生了什么 但是我的数据测试显

我们正在开发一个跟踪系统,使用WordPress ajax API在WordPress环境中连续进行3次ajax调用,第3次调用时刷新页面

我注意到有时我的数据输入尝试在后端失败,我假设(可能是错误的)这是因为我们的最后一个Ajax调用在前一个调用清除200 OK之前完成,并中断连接,这意味着数据永远不会被存储

现在我的印象是,只要发出jQuery.ajax({type:'POST'调用,我就可以立即关闭页面,并且我发布到的服务器端仍然可以接收并处理数据,而不管连接发生了什么

但是我的数据测试显示一些数据输入不一致。我是否正确地认为这不应该与我的最终AJAX调用在之前的AJAX调用用200OK清除之前完成(并重新加载页面)有关


谢谢您的帮助!

是的,如果您将ajax请求发送到服务器,然后您可以关闭页面,服务器将完成请求(执行代码)

但有一点您必须知道,您无法知道您的请求是否已到达服务器

jQuery.ajax("htpp://",{type: 'POST'});
这是一个异步请求,因此它将在后台执行代码。执行这行代码并不意味着您已经发送了请求。它有一些在后台工作的阶段

  • jQuery将解析你的代码,看看你想要什么
  • 它将创建一个xmlhttprequest对象,而不是设置选项
  • 最后,它将向服务器发送请求
  • 因此,如果在第三阶段之前立即关闭页面,则不会发送请求

    我建议您发送一个同步ajax请求,并等待任何刷新/关闭页面的响应。因为同步ajax请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作

    在中,必须将async设置为false以使其同步,如下所示

      jQuery.ajax({
        url: Url,
        success: function(r) {},
        async:false
      });
    

    是的,如果您将ajax请求发送到服务器,则可以关闭页面,服务器将完成请求(执行代码)

    但有一点您必须知道,您无法知道您的请求是否已到达服务器

    jQuery.ajax("htpp://",{type: 'POST'});
    
    这是一个异步请求,因此它将在后台执行代码。执行这行代码并不意味着您已经发送了请求。它有一些在后台工作的阶段

  • jQuery将解析你的代码,看看你想要什么
  • 它将创建一个xmlhttprequest对象,而不是设置选项
  • 最后,它将向服务器发送请求
  • 因此,如果在第三阶段之前立即关闭页面,则不会发送请求

    我建议您发送一个同步ajax请求,并等待任何刷新/关闭页面的响应。因为同步ajax请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作

    在中,必须将async设置为false以使其同步,如下所示

      jQuery.ajax({
        url: Url,
        success: function(r) {},
        async:false
      });
    

    第二个
    GET
    是否在第一个
    GET
    success
    回调中,等等。另外,请发布come code或更好的方法,a或a作为上下文。如果您连续调用3次而没有等待第一次响应,则无法保证请求将按照发送顺序进行处理。解决方案他的任务是链接请求,以便从成功回调发送第二个请求。对于第一个请求,我成功地找到了链接,但关于AJAX如何真正工作的问题对我来说仍然没有解决。例如:如果在200OK之前父页面刷新,AJAX调用是否会中止,通过它插入数据是否会失败?2nd
    GET
    在第一个
    GET
    success
    回调中,等等。另外,请发布come code或更好的方法,a或a作为上下文。如果您连续调用3次而没有等待第一次响应,则无法保证请求将按照发送顺序进行处理。解决此问题的方法是链接请求,以便从第一个请求的成功回调发送第二个请求我成功地找到了链接,但是关于AJAX如何真正工作的问题对我来说仍然没有解决。例如:如果在200OK之前父页面刷新,AJAX调用是否会中止,通过它插入数据是否会失败?谢谢他的帮助很大。谢谢你。这帮助很大。