Ajax响应将参数传递到URL栏(get?)

时间:2015-01-22 12:22:18

标签: jquery ajax

任何人都可以帮我调试这个简单的功能。 我正在使用onclick事件来提交表单。它将$ id参数传递给函数。

<input type='Submit' name='Submit' id="Submit" value='Add' class='btn btn-success' onclick="PostForm(<?php echo $id; ?>)">

问题出现在:if(response == 2)的响应中。 (编辑:实际上我注意到我没有收到resposne,但是自动刷新用GET参数填充了URL栏)

在Chrome浏览器中,页面会使用location.reload()重新加载。 但是,在Firefox / IE中,它将参数传递给URL栏,例如..url / 500?id = 500 $ other_field = 1000,而不是重新加载页面。

实现这一目标的浏览器之间可能存在什么问题?该函数只调用一个本地.py脚本,因此不会发生跨域的任何事情。

<script>

function PostForm($id) {

  var isValidForm = $("#form_id").valid(); //checks form is valid
  if (!isValidForm) {
      return false;
  }
  else {

  var id= $id; //store id

  $('.btn').attr("disabled", true); //disable buttons

  //waiting popup code

  $.blockUI({ css: { 
      border: 'none', 
      padding: '25px', 
      backgroundColor: '#111111', 
      '-webkit-border-radius': '10px', 
      '-moz-border-radius': '10px', 
      opacity: .5, 
      color: '#fff' 
  } }); 

  $.ajax({
    type: 'POST',
    url: 'xxx.php',
    data: $('#form_id').serialize(),
    success:function(response) {
        if(response == 1) {
          alert("Script executed successfully.");
          window.location.href = "/xxx/" + id;
        }

        else if(response == 2) {
          alert("Script failed to execute");
                   location.reload();
        } 
   }

  });

} //end else
} //end function

0 个答案:

没有答案