jQuery - 数据提交(表单与Ajax发布)

cof*_*tor 6 jquery post form-submit

我对其他开发者意见和关于发布数据的想法感兴趣:

原生HTML: <form action="" method="POST">

VS

jQuery:jquery.post()或者$.ajax()

目前,我出于不同的原因使用它们,而且就个人而言,我以各自的方式享受这两者.

在随机的场合,我注意到jQuery路线的细微差别,这就是为什么我在寻找意见.

我会尽力解释我在做什么.但基本上(在特定的表单页面上)我禁用<form>提交jQuery,并发布表单数据而不重新加载浏览器.

有时像这样:

simple_form.php

<form class="checkMyForm" id="myemailFORM">
  <input name="email1" type="text" value="blah@blah.yo" />
  <input name="email2" type="text" value="blah@blah.ma" />
  <input type="submit" name="button" value="submit" />
</form>

<script language="javascript" type="text/javascript">
$(document).ready(function(){

   $("form.checkMyForm").on('submit', function(){
      // do some stuff here (validation, clean-ups, who knows what else....)
      // stop if problems are detected:
      return false;

      // if good to go, use ajax(), for this page:
      var formid = $(this).attr("id");  // #myemailFORM 
      var formvaluesSerialized = $(this).serialize(); // key=val&key=val

      $.ajax({ 
         url:"simple_form.php", // stay on current page (php code is listening)
         data:"formid="+formid+"&"+formvaluesSerialized,
         type:"POST",
         cache:false,
         error:function(x,t,m){ /* alerts, logs, maybe freak out here  */ },
         success:function(response){

             /* do stuff here, and never redirect 
                use the "response" for any reason I'd like
             */

         }

      }); //eof ajax()

      return false; // ensure the html form still does not submit
   }); //eof on()

}); 
</script>
Run Code Online (Sandbox Code Playgroud)

上面的代码对我很有用,99.99%的时间我都没有问题.

然后,随机,它似乎jQuery没有听,我<form>正常经历提交.

奇怪的是,我会看到浏览器地址栏显示如下:

http://myurl.com/simple_form.php?formid=myemailFORM&email1=blah@blah.yo&email2=blah@blah.ma
Run Code Online (Sandbox Code Playgroud)

我只是更改网址:[ http://myurl.com/simple_form.php],然后重新提交,jQuery没有浏览器重新加载,数据发布,一切都很好.(所以它是随机的和稀疏的)

这会发生在任何人身上吗?
或者说,浏览器有时会使用JavaScript自行绊倒,这是否安全?

想法?

zor*_*anc 2

通常,$_POST每当我们需要将客户端提交的数据传递到服务器,然后在服务器处理数据时向客户端呈现更新的页面(或完全不同的页面)时,就会使用该方法。

至于 AJAX,通常当我们希望客户端将一些数据传递给服务器,同时使客户端保持在同一页面上并在服务器响应时仅更新该页面的一部分时使用它。

根据您的情况,根据您的 URL:

http://myurl.com/simple_form.php?formid=myemailFORM&email1=blah@blah.yo&email2=blah@blah.ma
Run Code Online (Sandbox Code Playgroud)

已提交请求$_GET- 通常在我们希望客户端从服务器请求某些数据时使用。您可以将$_GET请求与$_POST请求区分开,因为使用 时 URL 将具有?...&...&...结构$_GET

也许在您看到此请求的情况下$_GET,您将表单方法指定为 GET:

<form class="checkMyForm" id="myemailFORM" method="GET">
Run Code Online (Sandbox Code Playgroud)