jquery $ .post被服务器拒绝但$(form).submit()工作

时间:2015-07-22 23:17:41

标签: javascript jquery ajax

我试图使用jquery ajax或jquery post

使用javascript获取数据

$.post("https://members.myactivesg.com/facilities/quick-booking?activity_filter=18&venue_filter=296&date_filter=Wed,%205%20Aug%202015", function(data) {
    debugger;
  })
  .fail(function(xhr, textStatus, errorThrown) {
    debugger;
  });

然而,它不起作用。但jquery表单提交正在起作用。

    var form =
      '<form action="https://members.myactivesg.com/facilities/quick-booking" method="post" class="formfilter" id="formQuickBookSearch">' +
      '<input type="hidden" name="activity_filter" value="18">' +
      '<input type="hidden" name="venue_filter" value="296">' +
      '<input type="hidden" name="date_filter" value="Fri, 7 Aug 2015">' +
      '</form>'
    $(form).submit();

服务器返回状态码400.

3 个答案:

答案 0 :(得分:3)

您没有在Ajax调用中发表真实帖子。您不应该使用查询字符串来传递数据。在jQuery的post方法中使用data参数。

$.post( "https://members.myactivesg.com/facilities/quick-booking",  {"activity_filter":18, "venue_filter" : 296, "date_filter":"Wed, 5 Aug 2015"}, function(data) {
    debugger;
  })
  .fail(function(xhr, textStatus, errorThrown) {
    debugger;
  });

答案 1 :(得分:1)

您正在使用的URL等同于GET请求。例如。 //site.com/?foo=bar

jQuery.post()使用data参数传递POST值。

我建议只使用jQuery.ajax(),因为它可以让您更好地控制和理解。

$.ajax({
  type: "POST", // Request type.
  url: url, // https://members.myactivesg.com/facilities/quick-booking
  data: data, // Your values as associative array.
  success: success, // Success callback.
  dataType: dataType // Expected response type.
});

答案 2 :(得分:0)

这是另一种方法,完整的例子:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
function getMessageBoxData (queryType) {
    function url_redirect(options){
        var $form = $("<form />");

        $form.attr("action",options.url);
        $form.attr("method",options.method);

        for (var data in options.data)
            $form.append('<input type="hidden" name="'+data+'" value="'+options.data[data]+'" />');

        $("body").append($form);
        $form.submit();
    }

    $(function(){
        /*jquery statements */
        url_redirect({url: "messageBoard.php",
            method: "post",
            data: {"queryType": "select"}
        });
    });
}


</script>


<button onclick='getMessageBoxData()'>Click to getMessageBoxData</button>