HTML表单设置为POST但执行了GET方法

时间:2014-10-28 13:07:21

标签: html forms

在我构建的网上商店中,我发布了HTML表单时遇到问题。几乎在所有情况下(99,9%),这都按预期工作,但在某些特定情况下,它会出错。我真的不知道。这就是我在这里发布问题的原因。

我的HTML表单如下:

<form id="gegevens" class="form-horizontal margin-bot-15" method="post" action="<?=HOST?>/winkelmand/gegevens-controleren/" role="form" autocomplete="off">
  // Some input forms and a lot of HTML
  <input type="submit" class="btn btn-shopping-cart" value="order">
</form>

现在应使用/winkelmand/gegevens-controleren/访问网页POST,而不是GET。在99.9%的案例中,这也是预期的POST。但在其他情况下,它是GET,并且没有数据发布到此页面。

我可以在访问日志中看到这一点,因为通过/winkelmand/gegevens-controleren/访问了网址GET。我在同一天(和没有问题的前7天)两次发生此问题。订单数量大到足以说明真正的少量订单出错了。我在访问日志中注意到的唯一一件事就是这两个订单都是从带有Safari的Mac发出的,而且它们是从另一个网站重定向到这个网站的。

用户代理:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25"

在我自己的Mac上使用Safari和OSX 10.10我和其中一个客户做了相同的操作,同样的重定向步骤相同,但一切都像我预期的那样。

有没有人知道可能导致这种情况或我可以检查的内容?

更新 他们手动输入URL的建议非常不可能,但可能是可能的。

我使用jQuery验证来验证表单。在这个javascipt之下。

 $("#gegevens").validate({

    focusInvalid: false,
    rules: {
      email: {
        required: true,
        emailFull: true
      }              
    },
    messages:{
      email: {
        required: "Er is geen e-mailadres ingevuld.",
        emailFull: "Vul een geldig e-mailadres in."
      }
    },
    errorClass: 'has-error',
    validClass: 'has-success',
    ignore: "",
    errorElement: "div",
    errorPlacement: function (error, element) {

      if(element[0].name == "betaalmethode"){
        // Bij element betaalmethode melding tonen na de lijst
        $("ul.list-betaalmethode").after(error);
      }else if(element[0].name == "voorwaarden"){
        // Bij voorwaarden melding tonen na het element
        element.parent().after(error);
      }
    },
    highlight: function (element, errorClass, validClass) {
      $(element).nextAll('.glyphicon').removeClass('hidden glyphicon-ok has-succes').addClass('glyphicon-exclamation-sign has-error');
      $(element).addClass("input-error");
    },
    unhighlight: function (element, errorClass, validClass) {
      $(element).nextAll('.glyphicon').removeClass('hidden glyphicon-exclamation-sign has-error').addClass('glyphicon-ok has-success');
      $(element).removeClass("input-error");
    },
    invalidHandler: function(form, validator) {
      if (!validator.numberOfInvalids()) {
        return;
      }else {
        // De eerste melding plaatsen in de meldingBody
        // element ID plaatsen in data-focus van de OK button
        // Popup tonen
        $("#meldingBody").html(validator.errorList[0].message);
        $("#meldingOk").data("focus", validator.errorList[0].element.id);
        $("#melding").modal('toggle');

      }
    },
    submitHandler: function (form) {
      if ($(form).valid()) {
        form.submit();
      }
    }
  });

0 个答案:

没有答案