Javascript linux服务器上Jquery.post和google chrome的问题

Javascript linux服务器上Jquery.post和google chrome的问题,javascript,jquery,google-chrome,post,Javascript,Jquery,Google Chrome,Post,在进行了一次又一次的测试并创建了新脚本之后,我发现chrome在我的jquery脚本的这一部分中存在问题: $(document).ready(function(){ $(".subto").click(function() { var data = {ramp: ramp, toilet:toilet, door:door, blind:blind, dog:dog, assist:assist, ear:ear, lift:lift, park:park, ram

在进行了一次又一次的测试并创建了新脚本之后,我发现chrome在我的jquery脚本的这一部分中存在问题:

 $(document).ready(function(){

    $(".subto").click(function() {
    var data = {ramp: ramp, toilet:toilet, door:door, blind:blind,
    dog:dog, assist:assist, ear:ear, lift:lift, park:park, ramped:ramped, star:star
    };
     levelramp(data);
   });


function levelramp(ramp,toilet) {
    var url = "http://youraccessguru.com/sesstest1.php";
    $.post(url, {ramp: ramp},function(data) {
       $("#text").val(data).show();
    });

    }
获取错误仍然取决于单击按钮所需的时间,请尝试查看。如果你尽快点击一张图片并提交脚本,它就会工作 但如果您按back并在页面上等待30秒,然后选择并单击submit,则hightlight将不会更改或工作

第一个按钮无论如何都不起作用,单独的问题就不解决了


该网站在除Google chrome之外的任何其他浏览器中都可以正常工作。我看到的第一个问题是,您将POST请求绑定到一个提交自己表单的提交按钮,而不是阻止该表单被提交。因此,当您单击subto时,脚本会执行此操作:

  • 将ajax邮件发送到
  • 火灾发生后,立即发出无数据的定期POST请求
  • 请注意,这些情况甚至可能不会按顺序发生。我不知道数字2实际上做了什么,但我的假设是,如果它接收到POST数据,它会将您重定向到sesspreview.php

    所以你有两个选择。如果您想进行页面刷新,那么绝对不需要使用ajax请求。如果仍要使用ajax,请停止提交常规表单,并在ajax complete函数上重定向到sesspreview.php

    例如:

    当然,这取决于PHP文件的设置方式以及它们的实际用途。我不知道,所以如果您将数据发布到sesspreview.php,这将不起作用

    编辑: 好的,那么您继续使用AJAX,然后定期发布以提交其余数据。在本例中,首先提交AJAX,然后等待AJAX响应,然后再提交表单的其余部分。为表单提供一个ID,然后使用如下代码:

    $(function(){
      $(".subto").click(function(e) {
        e.preventDefault();
        var data = {ramp: ramp, toilet:toilet, door:door, blind:blind, dog:dog, assist:assist, ear:ear, lift:lift, park:park, ramped:ramped, star:star};
        levelramp(data);
      });
    
    
      function levelramp(ramp,toilet) {
        var url = "http://youraccessguru.com/sesstest1.php";
        $.post(url, {ramp: ramp}, function(data) {
          $('#formID').submit();
        });
      }
    });
    

    我看到的第一个问题是,您正在将POST请求绑定到提交其自己表单的提交按钮,并且您没有阻止该表单被提交。因此,当您单击subto时,脚本会执行此操作:

  • 将ajax邮件发送到
  • 火灾发生后,立即发出无数据的定期POST请求
  • 请注意,这些情况甚至可能不会按顺序发生。我不知道数字2实际上做了什么,但我的假设是,如果它接收到POST数据,它会将您重定向到sesspreview.php

    所以你有两个选择。如果您想进行页面刷新,那么绝对不需要使用ajax请求。如果仍要使用ajax,请停止提交常规表单,并在ajax complete函数上重定向到sesspreview.php

    例如:

    当然,这取决于PHP文件的设置方式以及它们的实际用途。我不知道,所以如果您将数据发布到sesspreview.php,这将不起作用

    编辑: 好的,那么您继续使用AJAX,然后定期发布以提交其余数据。在本例中,首先提交AJAX,然后等待AJAX响应,然后再提交表单的其余部分。为表单提供一个ID,然后使用如下代码:

    $(function(){
      $(".subto").click(function(e) {
        e.preventDefault();
        var data = {ramp: ramp, toilet:toilet, door:door, blind:blind, dog:dog, assist:assist, ear:ear, lift:lift, park:park, ramped:ramped, star:star};
        levelramp(data);
      });
    
    
      function levelramp(ramp,toilet) {
        var url = "http://youraccessguru.com/sesstest1.php";
        $.post(url, {ramp: ramp}, function(data) {
          $('#formID').submit();
        });
      }
    });
    

    “提交”按钮用于保存文本框等其他字段,并验证用户的任何输入。所以禁用它会使事情变得更加困难。那么为什么不将“渐变”数据与表单的其余部分一起提交呢?为什么在ajax post请求中提交“ramp”,然后在常规post请求中立即提交其余数据?submit按钮用于保存其他字段,如文本框,并使用php验证用户的任何输入。所以禁用它会让事情变得更加困难。不过我会看看你的建议是否有用。sesstest1正在将.post保存到php会话中,以便将它们存储在mysql数据库中。在验证所有字段并给予.POST时间保存会话之前,用户不会被发送到sesspreview。对不起,我不是一个专家开发人员。这是整页。Sesspreview在存储到mysql之前只显示突出显示的图片。Jquery会使用浏览器刷新图片。我可能不太清楚的是,您正在一个接一个地提交两个POST请求。一个是通过AJAX实现这些按钮,另一个是通过常规POST实现表单的其余部分。这是一种不好的做法,很可能会引起问题,因为页面可能在AJAX文章有足够的时间实际提交之前重定向。如果您绝对必须这样做(您不需要),请阅读我的答案更新,我将在大约1分钟后发布。提交按钮用于保存其他字段,如文本框,并验证用户的任何输入。所以禁用它会使事情变得更加困难。那么为什么不将“渐变”数据与表单的其余部分一起提交呢?为什么在ajax post请求中提交“ramp”,然后在常规post请求中立即提交其余数据?submit按钮用于保存其他字段,如文本框,并使用php验证用户的任何输入。所以禁用它会让事情变得更加困难。不过我会看看你的建议是否有用。sesstest1正在将.post保存到php会话中,以便将它们存储在mysql数据库中。在验证所有字段并给予.POST时间保存会话之前,用户不会被发送到sesspreview。对不起,我不是一个专家开发人员。这是整页。Sesspreview在存储到mysql之前只显示突出显示的图片。Jquery会使用浏览器刷新图片。我可能不太清楚的是,您正在一个接一个地提交两个POST请求。一个是通过AJAX实现这些按钮,另一个是通过常规POST实现表单的其余部分。这是一种不好的做法,很可能会引起问题,因为页面可能在AJAX文章有足够的时间实际提交之前重定向。如果你一定要这样做(你没有),请阅读我的答案更新,我将在大约1分钟后发布。